提交 4cca0071 编写于 作者: V vben

test(code-split): code split optimization

上级 81e90409
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
- 还原 antdv 默认 loading,重构 `Loading` 组件,增加`useLoading``v-loading`指令。并增加示例 - 还原 antdv 默认 loading,重构 `Loading` 组件,增加`useLoading``v-loading`指令。并增加示例
- i18n 支持 vscode `i18n-ally`插件 - i18n 支持 vscode `i18n-ally`插件
- 新增多级路由缓存示例 - 新增多级路由缓存示例
- 打包代码拆分(试验)
### ⚡ Performance Improvements ### ⚡ Performance Improvements
......
import type { GetManualChunk, GetManualChunkApi } from 'rollup';
//
const vendorLibs: { match: string[]; output: string }[] = [
{
match: ['xlsx'],
output: 'xlsx',
},
];
// @ts-ignore
export const configManualChunk: GetManualChunk = (id: string, api: GetManualChunkApi) => {
if (/[\\/]node_modules[\\/]/.test(id)) {
const matchItem = vendorLibs.find((item) => {
const reg = new RegExp(`[\\/]node_modules[\\/]_?(${item.match.join('|')})(.*)`, 'ig');
return reg.test(id);
});
return matchItem ? matchItem.output : null;
}
};
...@@ -3,6 +3,7 @@ import { resolve } from 'path'; ...@@ -3,6 +3,7 @@ import { resolve } from 'path';
import { modifyVars } from './build/config/lessModifyVars'; import { modifyVars } from './build/config/lessModifyVars';
import { createProxy } from './build/vite/proxy'; import { createProxy } from './build/vite/proxy';
import { configManualChunk } from './build/vite/optimizer';
import globbyTransform from './build/vite/plugin/transform/globby'; import globbyTransform from './build/vite/plugin/transform/globby';
import dynamicImportTransform from './build/vite/plugin/transform/dynamic-import'; import dynamicImportTransform from './build/vite/plugin/transform/dynamic-import';
...@@ -53,9 +54,11 @@ const viteConfig: UserConfig = { ...@@ -53,9 +54,11 @@ const viteConfig: UserConfig = {
// terser options // terser options
terserOptions: { terserOptions: {
compress: { compress: {
keep_infinity: true,
drop_console: VITE_DROP_CONSOLE, drop_console: VITE_DROP_CONSOLE,
}, },
}, },
define: { define: {
__VERSION__: pkg.version, __VERSION__: pkg.version,
// setting vue-i18-next // setting vue-i18-next
...@@ -64,12 +67,14 @@ const viteConfig: UserConfig = { ...@@ -64,12 +67,14 @@ const viteConfig: UserConfig = {
__VUE_I18N_FULL_INSTALL__: false, __VUE_I18N_FULL_INSTALL__: false,
__INTLIFY_PROD_DEVTOOLS__: false, __INTLIFY_PROD_DEVTOOLS__: false,
}, },
cssPreprocessOptions: { cssPreprocessOptions: {
less: { less: {
modifyVars: modifyVars, modifyVars: modifyVars,
javascriptEnabled: true, javascriptEnabled: true,
}, },
}, },
// 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 // 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
optimizeDeps: { optimizeDeps: {
include: [ include: [
...@@ -80,11 +85,6 @@ const viteConfig: UserConfig = { ...@@ -80,11 +85,6 @@ const viteConfig: UserConfig = {
], ],
}, },
proxy: createProxy(VITE_PROXY),
plugins: createVitePlugins(viteEnv),
rollupInputOptions: {
plugins: createRollupPlugin(),
},
transforms: [ transforms: [
globbyTransform({ globbyTransform({
resolvers: resolvers, resolvers: resolvers,
...@@ -94,6 +94,19 @@ const viteConfig: UserConfig = { ...@@ -94,6 +94,19 @@ const viteConfig: UserConfig = {
}), }),
dynamicImportTransform(VITE_DYNAMIC_IMPORT), dynamicImportTransform(VITE_DYNAMIC_IMPORT),
], ],
proxy: createProxy(VITE_PROXY),
plugins: createVitePlugins(viteEnv),
rollupInputOptions: {
plugins: createRollupPlugin(),
},
rollupOutputOptions: {
compact: true,
manualChunks: configManualChunk,
},
}; };
export default viteConfig; export default viteConfig;
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册