2024-07-23 15:08:33 -04:00
|
|
|
import type { ConfigEnv, UserConfig } from 'vite'
|
|
|
|
import { defineConfig, mergeConfig } from 'vite'
|
|
|
|
import { getBuildConfig, external, pluginHotRestart } from './vite.base.config'
|
2024-07-23 21:10:21 -04:00
|
|
|
import viteTsconfigPaths from 'vite-tsconfig-paths'
|
2024-07-23 12:54:25 -04:00
|
|
|
|
|
|
|
// https://vitejs.dev/config
|
|
|
|
export default defineConfig((env) => {
|
2024-07-23 15:08:33 -04:00
|
|
|
const forgeEnv = env as ConfigEnv<'build'>
|
|
|
|
const { forgeConfigSelf } = forgeEnv
|
2024-07-23 12:54:25 -04:00
|
|
|
const config: UserConfig = {
|
|
|
|
build: {
|
|
|
|
rollupOptions: {
|
|
|
|
external,
|
|
|
|
// Preload scripts may contain Web assets, so use the `build.rollupOptions.input` instead `build.lib.entry`.
|
|
|
|
input: forgeConfigSelf.entry!,
|
|
|
|
output: {
|
|
|
|
format: 'cjs',
|
|
|
|
// It should not be split chunks.
|
|
|
|
inlineDynamicImports: true,
|
|
|
|
entryFileNames: '[name].js',
|
|
|
|
chunkFileNames: '[name].js',
|
|
|
|
assetFileNames: '[name].[ext]',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2024-07-23 21:10:21 -04:00
|
|
|
plugins: [pluginHotRestart('reload'), viteTsconfigPaths()],
|
2024-07-23 15:08:33 -04:00
|
|
|
}
|
2024-07-23 12:54:25 -04:00
|
|
|
|
2024-07-23 15:08:33 -04:00
|
|
|
return mergeConfig(getBuildConfig(forgeEnv), config)
|
|
|
|
})
|