I call this SASS at the code level.
import importmap from 'vite-plugin-importmap'
const mark = process.env.VITE_OPEN_TYPE
export default defineConfig({
plugins: [importmap(mark)]
})
vite.config.js
import importmap from 'vite-plugin-importmap'
const mark = 'v1'
export default defineConfig({
plugins: [importmap(mark)]
})
src
├─ main.js
├─ test.js
├─ test.v1.js
└─ test.v2.js
import test from 'test.js' // test.v1.js
src
├─ main.js
├─ test.js
└─ test[v1,v2].js
import test from 'test.js' // test[v1,v2].js
├─ assets
│ ├─ cat.jpg
│ ├─ cat.other.jpg
│ ├─ cat.v3.jpg
│ └─ import.config.json
├─ src
│ ├─ import.config.json
│ ├─ main.js
│ ├─ test.js
│ ├─ test.other.js
│ └─ test.v3.js
├─ index.html
├─ package.json
├─ pnpm-lock.yaml
└─ vite.config.js
assets/import.config.json
{
"cat.jpg": {
"cat.other.jpg": ["v1", "v2"],
"cat.v3.jpg": ["v3"]
}
}
import imgUrl from '../assets/cat.jpg' // ../assets/cat.other.jpg
src/import.config.json
{
"test.js": {
"test.other.js": ["v1", "v2"],
"test.v3.js": ["v3"]
}
}
import test from './test' // ./test.other.js