加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
vite.config.ts 3.31 KB
一键复制 编辑 原始数据 按行查看 历史
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import path from 'path';
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
import { vite2Ext } from "apite";
// 自动动态引入antv组件,测试结果发现全部引入也不大,所以注了
// import Components from 'unplugin-vue-components/vite';
// import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers';
import OptimizationPersist from 'vite-plugin-optimize-persist'
import PkgConfig from 'vite-plugin-package-config'
import vueSetupExtend from 'vite-plugin-vue-setup-extend'
import { visualizer } from 'rollup-plugin-visualizer'
const lifecycle = process.env.npm_lifecycle_event;
// https://vitejs.dev/config/
export default defineConfig({
esbuild: {
drop: [],
},
// 向import.meta.env注入变量,无法注入全局windows,只能注入import.meta.env中
// 'import.meta.env.ENV_VARIABLE': JSON.stringify(process.env.ENV_VARIABLE)
// https://cn.vitejs.dev/config/shared-options.html#envprefix
define: {
'import.meta.env.APP_VERSION': JSON.stringify('2.0.0'),
},
build: {
sourcemap: true,
// terserOptions: {
// compress: {
// drop_console: false,
// drop_debugger: false,
// },
// },
chunkSizeWarningLimit: 5000,
rollupOptions: {
output: {
// manualChunks: {
// vendor
// },
chunkFileNames: 'js/[name]-[hash].js',
entryFileNames: 'js/[name]-[hash].js',
assetFileNames: '[ext]/[name]-[hash].[ext]',
manualChunks(id) { //静态资源分拆打包
// 可参考https://www.cnblogs.com/jyk/p/16029074.html
// node包插件打包在一起
if (id.includes('node_modules')) {
const arr = id.toString().split('node_modules/')[1].split('/')
switch (arr[0]) {
// logicflow是例外,和页面文件打包在一起
case '@logicflow':
// if (arr[1] === 'core') {
// return 'logicflow_core'
// } else {
// return 'logicflow_extension'
// }
break;
default:
return 'vendors'
}
}
}
},
},
},
plugins: [
vue(),
vueJsx(),
createSvgIconsPlugin({
// 指定需要缓存的图标文件夹
iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],
// 指定symbolId格式
symbolId: 'icon-[dir]-[name]',
}),
vite2Ext({
dir: 'mock'
}) as any,
// Components({
// dts: true,
// resolvers: [AntDesignVueResolver()],
// include: [/\.vue$/, /\.tsx$/],
// }),
PkgConfig(),
OptimizationPersist(),
vueSetupExtend(),
lifecycle === 'report' ? visualizer({ gzipSize: true, open: true, brotliSize: true, filename: 'report.html' }) : null
],
resolve: {
alias: [
{
find: 'vue-i18n',
replacement: 'vue-i18n/dist/vue-i18n.cjs.js',
},
{
find: '@',
replacement: fileURLToPath(new URL('./src', import.meta.url))
}
],
},
css: {
preprocessorOptions: {
less: {
// modifyVars: generateModifyVars(),
javascriptEnabled: true,
},
},
},
})
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化