2024-05-09 22:29:02 +00:00
|
|
|
import { pathResolve } from '@3rapp/common';
|
2024-05-07 16:24:43 +00:00
|
|
|
import merge from 'deepmerge';
|
|
|
|
import { ConfigEnv, UserConfig } from 'vite';
|
|
|
|
|
|
|
|
import { createPlugins } from './plugins';
|
|
|
|
import { Configure } from './types';
|
|
|
|
|
|
|
|
export const createConfig = (params: ConfigEnv, configure?: Configure): UserConfig => {
|
|
|
|
const isBuild = params.command === 'build';
|
|
|
|
return merge<UserConfig>(
|
|
|
|
{
|
|
|
|
resolve: {
|
|
|
|
alias: {
|
|
|
|
'@': pathResolve('src'),
|
|
|
|
},
|
|
|
|
},
|
|
|
|
css: {
|
|
|
|
modules: {
|
|
|
|
localsConvention: 'camelCaseOnly',
|
|
|
|
},
|
|
|
|
},
|
2024-05-09 22:29:02 +00:00
|
|
|
server: {
|
|
|
|
proxy: {
|
|
|
|
'/api': {
|
|
|
|
target: 'http://localhost:3001/api',
|
|
|
|
changeOrigin: true,
|
|
|
|
rewrite: (path) => path.replace(/^\/api/, ''),
|
|
|
|
},
|
|
|
|
},
|
|
|
|
cors: true,
|
|
|
|
},
|
2024-05-07 16:24:43 +00:00
|
|
|
plugins: createPlugins(isBuild),
|
|
|
|
},
|
|
|
|
typeof configure === 'function' ? configure(params, isBuild) : {},
|
|
|
|
{
|
|
|
|
arrayMerge: (_d, s, _o) => Array.from(new Set([..._d, ...s])),
|
|
|
|
},
|
|
|
|
);
|
|
|
|
};
|