2020-12-01 21:02:37 +08:00
import type { UserConfig , Resolver } from 'vite' ;
2020-09-28 20:19:10 +08:00
import { resolve } from 'path' ;
2020-10-27 21:21:14 +08:00
import { modifyVars } from './build/config/lessModifyVars' ;
import { createProxy } from './build/vite/proxy' ;
2020-12-04 23:35:58 +08:00
import { configManualChunk } from './build/vite/optimizer' ;
2020-11-19 23:01:27 +08:00
import globbyTransform from './build/vite/plugin/transform/globby' ;
import dynamicImportTransform from './build/vite/plugin/transform/dynamic-import' ;
2020-10-27 21:21:14 +08:00
2020-12-01 20:59:17 +08:00
import { loadEnv } from './build/utils' ;
2020-09-28 20:19:10 +08:00
2020-10-27 21:21:14 +08:00
import { createRollupPlugin , createVitePlugins } from './build/vite/plugin' ;
2020-10-13 01:40:21 +08:00
const pkg = require ( './package.json' ) ;
2020-09-28 20:19:10 +08:00
2020-10-27 21:21:14 +08:00
const viteEnv = loadEnv ( ) ;
2020-12-01 21:02:37 +08:00
const { VITE_PORT , VITE_PUBLIC_PATH , VITE_PROXY , VITE_DROP_CONSOLE , VITE_DYNAMIC_IMPORT } = viteEnv ;
2020-09-28 20:19:10 +08:00
function pathResolve ( dir : string ) {
return resolve ( __dirname , '.' , dir ) ;
}
2020-10-10 21:28:43 +08:00
2020-12-01 21:02:37 +08:00
const alias : Record < string , string > = {
'/@/' : pathResolve ( 'src' ) ,
} ;
const root : string = process . cwd ( ) ;
const resolvers : Resolver [ ] = [ ] ;
2020-09-28 20:19:10 +08:00
const viteConfig : UserConfig = {
2020-12-01 21:02:37 +08:00
root ,
alias ,
2020-10-10 21:28:43 +08:00
/ * *
2020-10-29 23:01:11 +08:00
* port
2020-10-10 21:28:43 +08:00
* @default '3000'
* /
port : VITE_PORT ,
2020-12-01 21:02:37 +08:00
2020-09-28 20:19:10 +08:00
/ * *
2020-10-29 23:01:11 +08:00
* Base public path when served in production .
2020-09-28 20:19:10 +08:00
* @default '/'
* /
2020-10-10 21:28:43 +08:00
base : VITE_PUBLIC_PATH ,
2020-09-28 20:19:10 +08:00
/ * *
2020-10-29 23:01:11 +08:00
* Transpile target for esbuild .
2020-10-16 22:03:44 +08:00
* @default 'es2020'
2020-09-28 20:19:10 +08:00
* /
2020-11-28 14:27:26 +08:00
esbuildTarget : 'es2019' ,
2020-12-01 21:02:37 +08:00
2020-10-29 23:01:11 +08:00
// terser options
2020-10-24 01:46:29 +08:00
terserOptions : {
2020-10-16 22:03:44 +08:00
compress : {
2020-12-04 23:35:58 +08:00
keep_infinity : true ,
2020-10-16 22:03:44 +08:00
drop_console : VITE_DROP_CONSOLE ,
} ,
} ,
2020-12-04 23:35:58 +08:00
2020-10-13 01:40:21 +08:00
define : {
__VERSION__ : pkg.version ,
2020-11-23 23:24:13 +08:00
// setting vue-i18-next
2020-11-19 23:01:27 +08:00
// Suppress warning
__VUE_I18N_LEGACY_API__ : false ,
__VUE_I18N_FULL_INSTALL__ : false ,
__INTLIFY_PROD_DEVTOOLS__ : false ,
2020-10-13 01:40:21 +08:00
} ,
2020-12-04 23:35:58 +08:00
2020-09-28 20:19:10 +08:00
cssPreprocessOptions : {
less : {
modifyVars : modifyVars ,
javascriptEnabled : true ,
} ,
} ,
2020-12-04 23:35:58 +08:00
2020-10-29 23:01:11 +08:00
// The package will be recompiled using rollup, and the new package compiled into the esm module specification will be put into node_modules/.vite_opt_cache
2020-09-28 20:19:10 +08:00
optimizeDeps : {
2020-11-23 00:35:15 +08:00
include : [
'echarts/map/js/china' ,
'ant-design-vue/es/locale/zh_CN' ,
'ant-design-vue/es/locale/en_US' ,
'@ant-design/icons-vue' ,
] ,
2020-09-28 20:19:10 +08:00
} ,
2020-10-16 22:03:44 +08:00
2020-11-19 23:01:27 +08:00
transforms : [
globbyTransform ( {
2020-12-01 21:02:37 +08:00
resolvers : resolvers ,
root : root ,
alias : alias ,
2020-11-19 23:01:27 +08:00
includes : [ resolve ( 'src/router' ) , resolve ( 'src/locales' ) ] ,
} ) ,
2020-12-01 21:02:37 +08:00
dynamicImportTransform ( VITE_DYNAMIC_IMPORT ) ,
2020-11-19 23:01:27 +08:00
] ,
2020-12-04 23:35:58 +08:00
proxy : createProxy ( VITE_PROXY ) ,
plugins : createVitePlugins ( viteEnv ) ,
rollupInputOptions : {
plugins : createRollupPlugin ( ) ,
} ,
rollupOutputOptions : {
compact : true ,
manualChunks : configManualChunk ,
} ,
2020-12-01 21:02:37 +08:00
} ;
export default viteConfig ;