30 lines
878 B
TypeScript
30 lines
878 B
TypeScript
|
import { pathResolve } from '@3rapp/utils';
|
||
|
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',
|
||
|
},
|
||
|
},
|
||
|
plugins: createPlugins(isBuild),
|
||
|
},
|
||
|
typeof configure === 'function' ? configure(params, isBuild) : {},
|
||
|
{
|
||
|
arrayMerge: (_d, s, _o) => Array.from(new Set([..._d, ...s])),
|
||
|
},
|
||
|
);
|
||
|
};
|