44 lines
1.1 KiB
TypeScript
44 lines
1.1 KiB
TypeScript
![]() |
import type { ConfigEnv, UserConfig } from 'vite'
|
||
|
import { defineConfig, mergeConfig } from 'vite'
|
||
|
import { configDefaults } from 'vitest/config'
|
||
|
import viteTsconfigPaths from 'vite-tsconfig-paths'
|
||
|
import {
|
||
|
getBuildConfig,
|
||
|
getBuildDefine,
|
||
|
external,
|
||
|
pluginHotRestart,
|
||
|
} from './vite.base.config'
|
||
|
|
||
|
// https://vitejs.dev/config
|
||
|
export default defineConfig((env) => {
|
||
|
const forgeEnv = env as ConfigEnv<'build'>
|
||
|
const define = getBuildDefine(forgeEnv)
|
||
|
const { root, mode, forgeConfigSelf } = forgeEnv
|
||
|
const config: UserConfig = {
|
||
|
root,
|
||
|
mode,
|
||
|
base: './',
|
||
|
build: {
|
||
|
lib: {
|
||
|
entry: forgeConfigSelf.entry!,
|
||
|
fileName: () => '[name].js',
|
||
|
formats: ['cjs'],
|
||
|
},
|
||
|
rollupOptions: {
|
||
|
external,
|
||
|
},
|
||
|
},
|
||
|
resolve: {
|
||
|
// Load the Node.js entry.
|
||
|
mainFields: ['module', 'jsnext:main', 'jsnext'],
|
||
|
},
|
||
|
plugins: [pluginHotRestart('restart'), viteTsconfigPaths()],
|
||
|
worker: {
|
||
|
plugins: () => [viteTsconfigPaths()],
|
||
|
},
|
||
|
define,
|
||
|
}
|
||
|
|
||
|
return mergeConfig(getBuildConfig(forgeEnv), config)
|
||
|
})
|