Files
naive-ui-admin/vite.config.ts
2021-07-15 15:18:00 +08:00

79 lines
1.9 KiB
TypeScript

import type { UserConfig, ConfigEnv } from 'vite'
import { loadEnv } from 'vite'
import { resolve } from 'path'
import { wrapperEnv } from './build/utils';
import { createVitePlugins } from './build/vite/plugin';
import { OUTPUT_DIR } from './build/constant';
function pathResolve(dir: string) {
return resolve(process.cwd(), '.', dir);
}
export default ({ command, mode }: ConfigEnv): UserConfig => {
const root = process.cwd();
const env = loadEnv(mode, root);
const viteEnv = wrapperEnv(env);
const { VITE_BASE_URL, VITE_DROP_CONSOLE, VITE_PORT, VITE_GLOB_PROD_MOCK } = viteEnv
const prodMock = VITE_GLOB_PROD_MOCK
const isBuild = command === 'build';
return {
base: VITE_BASE_URL,
esbuild: {},
resolve: {
alias: [
{
find: /\/#\//,
replacement: pathResolve('types') + '/'
},
{
find: '@',
replacement: pathResolve('src') + '/'
},
],
},
plugins: createVitePlugins(viteEnv, isBuild, prodMock),
css: {
preprocessorOptions: {
less: {
modifyVars: {},
javascriptEnabled: true,
additionalData: `@import "src/styles/global.less";`,
},
scss: {
additionalData: `@import "src/styles/global.less";`,
}
}
},
server: {
port: VITE_PORT,
// proxy: {
// '/api': {
// target: '',
// changeOrigin: true,
// rewrite: (path) => path.replace(/^\/api/, '/api/v1')
// }
// }
},
optimizeDeps: {
include: [
],
exclude: [
'vue-demi'
]
},
build: {
target: 'es2015',
outDir: OUTPUT_DIR,
terserOptions: {
compress: {
keep_infinity: true,
drop_console: VITE_DROP_CONSOLE,
},
},
brotliSize: false,
chunkSizeWarningLimit: 2000,
}
}
}