mirror of
https://github.com/1024-lab/smart-admin.git
synced 2025-09-13 14:39:06 +00:00
v2.0
This commit is contained in:
94
smart-admin-web/javascript-ant-design-vue3/vite.config.js
Normal file
94
smart-admin-web/javascript-ant-design-vue3/vite.config.js
Normal file
@@ -0,0 +1,94 @@
|
||||
/*
|
||||
* vite配置
|
||||
*
|
||||
* @Author: 1024创新实验室-主任:卓大
|
||||
* @Date: 2022-05-02 23:44:56
|
||||
* @Wechat: zhuda1024
|
||||
* @Email: lab1024@163.com
|
||||
* @Copyright 1024创新实验室 ( https://1024lab.net ),Since 2012
|
||||
*/
|
||||
import { resolve } from 'path';
|
||||
import vue from '@vitejs/plugin-vue';
|
||||
//提速第一次vite启动速度
|
||||
import OptimizationPersist from 'vite-plugin-optimize-persist';
|
||||
import PkgConfig from 'vite-plugin-package-config';
|
||||
|
||||
const pathResolve = (dir) => {
|
||||
return resolve(__dirname, '.', dir);
|
||||
};
|
||||
export default {
|
||||
base: process.env.NODE_ENV === 'production' ? '/' : '/',
|
||||
root: process.cwd(),
|
||||
resolve: {
|
||||
alias: [
|
||||
// 国际化替换
|
||||
{
|
||||
find: 'vue-i18n',
|
||||
replacement: 'vue-i18n/dist/vue-i18n.cjs.js',
|
||||
},
|
||||
// 绝对路径重命名:/@/xxxx => src/xxxx
|
||||
{
|
||||
find: /\/@\//,
|
||||
replacement: pathResolve('src') + '/',
|
||||
},
|
||||
{
|
||||
find: /^~/,
|
||||
replacement: '',
|
||||
},
|
||||
],
|
||||
},
|
||||
// 服务端渲染
|
||||
server: {
|
||||
host: '0.0.0.0',
|
||||
port: 8081,
|
||||
},
|
||||
plugins: [vue(), PkgConfig(), OptimizationPersist()],
|
||||
optimizeDeps: {
|
||||
include: ['ant-design-vue/es/locale/zh_CN', 'dayjs/locale/zh-cn', 'ant-design-vue/es/locale/en_US'],
|
||||
exclude: ['vue-demi'],
|
||||
},
|
||||
build: {
|
||||
// 清除console和debugger
|
||||
terserOptions: {
|
||||
compress: {
|
||||
drop_console: true,
|
||||
drop_debugger: true,
|
||||
},
|
||||
},
|
||||
rollupOptions: {
|
||||
output: {
|
||||
//配置这个是让不同类型文件放在不同文件夹,不会显得太乱
|
||||
chunkFileNames: 'js/[name]-[hash].js',
|
||||
entryFileNames: 'js/[name]-[hash].js',
|
||||
assetFileNames: '[ext]/[name]-[hash].[ext]',
|
||||
manualChunks(id) {
|
||||
//静态资源分拆打包
|
||||
if (id.includes('node_modules')) {
|
||||
return id.toString().split('node_modules/')[1].split('/')[0].toString();
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
target: 'modules',
|
||||
outDir: 'dist', // 指定输出路径
|
||||
assetsDir: 'assets', // 指定生成静态文件目录
|
||||
assetsInlineLimit: '4096', // 小于此阈值的导入或引用资源将内联为 base64 编码
|
||||
chunkSizeWarningLimit: 500, // chunk 大小警告的限制
|
||||
minify: 'terser', // 混淆器,terser构建后文件体积更小
|
||||
emptyOutDir: true, //打包前先清空原有打包文件
|
||||
},
|
||||
css: {
|
||||
preprocessorOptions: {
|
||||
less: {
|
||||
modifyVars: {
|
||||
hack: `true; @import (reference) "${resolve('src/theme/index.less')}";`,
|
||||
},
|
||||
javascriptEnabled: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
define: {
|
||||
__INTLIFY_PROD_DEVTOOLS__: false,
|
||||
'process.env': process.env,
|
||||
},
|
||||
};
|
Reference in New Issue
Block a user