You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
2.8 KiB
108 lines
2.8 KiB
import { defineConfig, loadEnv } from 'vite';
|
|
import vue from '@vitejs/plugin-vue';
|
|
import path from 'path';
|
|
|
|
import Components from 'unplugin-vue-components/vite';
|
|
import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers';
|
|
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
|
|
import postcssPxtoRem from 'postcss-pxtorem';
|
|
import { visualizer } from 'rollup-plugin-visualizer';
|
|
import { lazyImport, VxeResolver } from 'vite-plugin-lazy-import';
|
|
import { createHtmlPlugin } from 'vite-plugin-html';
|
|
const getViteEnv = (mode, target) => {
|
|
console.log(loadEnv(mode, process.cwd())[target], '>>>>>>');
|
|
return loadEnv(mode, process.cwd())[target];
|
|
};
|
|
// https://vitejs.dev/config/
|
|
export default defineConfig(({ command, mode }) => {
|
|
const env = loadEnv(mode, process.cwd());
|
|
console.log(env);
|
|
|
|
return {
|
|
base: './',
|
|
publicDir: 'public',
|
|
build: {
|
|
outDir: 'dist',
|
|
sourcemap: false,
|
|
minify: 'terser',
|
|
terserOptions: {
|
|
compress: {
|
|
//drop_console: true,
|
|
drop_debugger: true
|
|
}
|
|
}
|
|
},
|
|
plugins: [
|
|
vue(),
|
|
createHtmlPlugin({
|
|
inject: {
|
|
data: {
|
|
title: getViteEnv(mode, 'VITE_APP_TITLE')
|
|
}
|
|
}
|
|
}),
|
|
//vxe按需加载
|
|
lazyImport({
|
|
resolvers: [
|
|
VxeResolver({
|
|
libraryName: 'vxe-table'
|
|
})
|
|
]
|
|
}),
|
|
//打包视图
|
|
// visualizer({
|
|
// open: true,
|
|
// gzipSize: true,
|
|
// brotliSize: true,
|
|
// filename: 'stats.html'
|
|
// }),
|
|
createSvgIconsPlugin({
|
|
// 指定需要缓存的图标文件夹
|
|
iconDirs: [path.resolve(process.cwd(), 'src/plugin/svg-icon/svgs')],
|
|
// 指定symbolId格式
|
|
symbolId: '[name]'
|
|
}),
|
|
//按需加载
|
|
Components({
|
|
resolvers: [
|
|
AntDesignVueResolver({
|
|
importStyle: false // css in js
|
|
})
|
|
]
|
|
})
|
|
],
|
|
resolve: {
|
|
alias: {
|
|
'@': path.resolve(__dirname, 'src')
|
|
}
|
|
},
|
|
server: {
|
|
host: '0.0.0.0',
|
|
port:'8080',
|
|
proxy: {
|
|
'/api': {
|
|
target: 'http://192.168.1.37:9000',
|
|
// target: 'http://192.168.1.253:8000',
|
|
changeOrigin: true,
|
|
rewrite: (path) => path.replace(/^\/api/, '')
|
|
}
|
|
}
|
|
},
|
|
css: {
|
|
postcss: {
|
|
plugins: [
|
|
postcssPxtoRem({
|
|
rootValue: 128, // 按照自己的设计稿修改 1920/10
|
|
unitPrecision: 5, // 保留到5位小数
|
|
selectorBlackList: ['ignore', 'tab-bar', 'tab-bar-item', 'gasExperimentResult'], // 忽略转换正则匹配项
|
|
propList: ['*'],
|
|
replace: true,
|
|
mediaQuery: false,
|
|
minPixelValue: 0
|
|
})
|
|
]
|
|
}
|
|
}
|
|
};
|
|
});
|