提交 | 用户 | age
|
173d40
|
1 |
import type { UserConfig } from 'vite'; |
V |
2 |
|
2f6253
|
3 |
import { resolve } from 'path'; |
陈 |
4 |
|
173d40
|
5 |
import { modifyVars } from './build/config/lessModifyVars'; |
V |
6 |
import { createProxy } from './build/vite/proxy'; |
|
7 |
import globbyTransform from './build/vite/plugin/context/transform'; |
2f6253
|
8 |
|
173d40
|
9 |
import { isDevFn, loadEnv } from './build/utils'; |
2f6253
|
10 |
|
173d40
|
11 |
import { createRollupPlugin, createVitePlugins } from './build/vite/plugin'; |
V |
12 |
|
bb3b8f
|
13 |
const pkg = require('./package.json'); |
N |
14 |
|
173d40
|
15 |
const viteEnv = loadEnv(); |
V |
16 |
|
bb3b8f
|
17 |
const { |
N |
18 |
VITE_PORT, |
|
19 |
VITE_PUBLIC_PATH, |
|
20 |
VITE_PROXY, |
8a1bfd
|
21 |
VITE_DROP_CONSOLE, |
bb3b8f
|
22 |
// VITE_USE_CDN, |
173d40
|
23 |
} = viteEnv; |
2f6253
|
24 |
|
陈 |
25 |
function pathResolve(dir: string) { |
|
26 |
return resolve(__dirname, '.', dir); |
|
27 |
} |
|
28 |
|
|
29 |
const viteConfig: UserConfig = { |
e8aede
|
30 |
/** |
9ee0a5
|
31 |
* Entry. Use this to specify a js entry file in use cases where an |
V |
32 |
* `index.html` does not exist (e.g. serving vite assets from a different host) |
|
33 |
* @default 'index.html' |
|
34 |
*/ |
7bd0b8
|
35 |
// TODO build error |
V |
36 |
// entry: './public/index.html', |
9ee0a5
|
37 |
/** |
e8aede
|
38 |
* 端口号 |
B |
39 |
* @default '3000' |
|
40 |
*/ |
|
41 |
port: VITE_PORT, |
2f6253
|
42 |
/** |
陈 |
43 |
* 服务地址 |
|
44 |
* @default 'localhost' |
|
45 |
*/ |
|
46 |
hostname: 'localhost', |
|
47 |
/** |
2f268c
|
48 |
* 运行自动打开浏览器· |
2f6253
|
49 |
* @default 'false' |
陈 |
50 |
*/ |
|
51 |
open: false, |
|
52 |
/** |
|
53 |
* 压缩代码 |
|
54 |
* boolean | 'terser' | 'esbuild' |
|
55 |
* @default 'terser' |
|
56 |
*/ |
66acb2
|
57 |
minify: isDevFn() ? 'esbuild' : 'terser', |
2f6253
|
58 |
/** |
e8aede
|
59 |
* 基本公共路径 |
2f6253
|
60 |
* @default '/' |
陈 |
61 |
*/ |
e8aede
|
62 |
base: VITE_PUBLIC_PATH, |
2f6253
|
63 |
|
陈 |
64 |
/** |
|
65 |
* 打包输入路径 |
|
66 |
* @default 'dist' |
|
67 |
*/ |
|
68 |
outDir: 'dist', |
|
69 |
/** |
|
70 |
* @default 'false' |
|
71 |
*/ |
|
72 |
sourcemap: false, |
|
73 |
/** |
|
74 |
* 资源输出路径 |
|
75 |
* @default '_assets' |
|
76 |
*/ |
|
77 |
assetsDir: '_assets', |
|
78 |
/** |
|
79 |
* 静态资源小于该大小将会内联,默认4096kb |
|
80 |
* @default '4096' |
|
81 |
*/ |
|
82 |
assetsInlineLimit: 4096, |
|
83 |
/** |
|
84 |
* esbuild转换目标。 |
8a1bfd
|
85 |
* @default 'es2020' |
2f6253
|
86 |
*/ |
8a1bfd
|
87 |
esbuildTarget: 'es2020', |
e8aede
|
88 |
silent: false, |
2f6253
|
89 |
// 别名 |
陈 |
90 |
alias: { |
|
91 |
'/@/': pathResolve('src'), |
8a1bfd
|
92 |
}, |
V |
93 |
// terser配置 |
a9c2a2
|
94 |
terserOptions: { |
8a1bfd
|
95 |
compress: { |
V |
96 |
// 是否删除console |
|
97 |
drop_console: VITE_DROP_CONSOLE, |
|
98 |
}, |
2f6253
|
99 |
}, |
bb3b8f
|
100 |
define: { |
N |
101 |
__VERSION__: pkg.version, |
|
102 |
}, |
2f6253
|
103 |
// css预处理 |
陈 |
104 |
cssPreprocessOptions: { |
|
105 |
less: { |
|
106 |
modifyVars: modifyVars, |
|
107 |
javascriptEnabled: true, |
|
108 |
}, |
|
109 |
}, |
968f79
|
110 |
// 会使用 rollup 对 包重新编译,将编译成符合 esm 模块规范的新的包放入 node_modules/.vite_opt_cache |
2f6253
|
111 |
optimizeDeps: { |
21d0ed
|
112 |
include: [ |
V |
113 |
'echarts', |
|
114 |
'echarts/map/js/china', |
|
115 |
'ant-design-vue/es/locale/zh_CN', |
|
116 |
'@ant-design/icons-vue', |
|
117 |
'moment/locale/zh-cn', |
|
118 |
], |
2f6253
|
119 |
}, |
8a1bfd
|
120 |
|
2f6253
|
121 |
// 本地跨域代理 |
e8aede
|
122 |
proxy: createProxy(VITE_PROXY), |
173d40
|
123 |
plugins: createVitePlugins(viteEnv), |
2f6253
|
124 |
rollupInputOptions: { |
bb3b8f
|
125 |
// TODO |
N |
126 |
// external: VITE_USE_CDN ? externals : [], |
173d40
|
127 |
plugins: createRollupPlugin(), |
2f6253
|
128 |
}, |
陈 |
129 |
}; |
|
130 |
|
8a1bfd
|
131 |
export default { |
V |
132 |
...viteConfig, |
|
133 |
transforms: [globbyTransform(viteConfig)], |
|
134 |
} as UserConfig; |