2025-06-12 12:11:57 +02:00
|
|
|
/// <reference types="./forge.env.d.ts" />
|
|
|
|
|
|
2025-06-11 00:14:17 +02:00
|
|
|
import path from 'path';
|
|
|
|
|
|
2024-11-16 23:20:30 +01:00
|
|
|
import type { ConfigEnv, UserConfig } from 'vite';
|
|
|
|
|
import { defineConfig, mergeConfig } from 'vite';
|
2024-12-02 01:33:25 +01:00
|
|
|
|
2024-12-02 00:44:02 +01:00
|
|
|
import { external, getBuildConfig, pluginHotRestart } from './vite.base.config';
|
|
|
|
|
|
2024-11-16 16:55:45 +01:00
|
|
|
// https://vitejs.dev/config
|
2024-11-16 23:20:30 +01:00
|
|
|
export default defineConfig((env) => {
|
|
|
|
|
const forgeEnv = env as ConfigEnv<'build'>;
|
|
|
|
|
const { forgeConfigSelf } = forgeEnv;
|
|
|
|
|
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-11-16 16:55:45 +01:00
|
|
|
},
|
2024-11-16 23:20:30 +01:00
|
|
|
plugins: [pluginHotRestart('reload')],
|
|
|
|
|
resolve: {
|
|
|
|
|
alias: {
|
2025-06-11 00:14:17 +02:00
|
|
|
'@colanode/desktop': path.resolve(__dirname, './src'),
|
|
|
|
|
'@colanode/core': path.resolve(__dirname, '../../packages/core/src'),
|
|
|
|
|
'@colanode/crdt': path.resolve(__dirname, '../../packages/crdt/src'),
|
|
|
|
|
'@colanode/client': path.resolve(
|
|
|
|
|
__dirname,
|
|
|
|
|
'../../packages/client/src'
|
|
|
|
|
),
|
|
|
|
|
'@colanode/ui': path.resolve(__dirname, '../../packages/ui/src'),
|
2024-11-16 23:20:30 +01:00
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return mergeConfig(getBuildConfig(forgeEnv), config);
|
2024-11-16 16:55:45 +01:00
|
|
|
});
|