使用vite build
无法移除console
已按照README执行npm install vite-plugin-remove-console -D
vite.config.js如下
import { resolve } from 'path'
import vue from '@vitejs/plugin-vue'
import { defineConfig, loadEnv } from 'vite'
import Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import removeConsole from 'vite-plugin-remove-console'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import Inspect from 'vite-plugin-inspect'
import { viteMockServe } from 'vite-plugin-mock'
const pathResolve = (dir) => {
return resolve(__dirname, '.', dir)
}
const mockIgnore = (filename) => {
// 修改后需重启 vite
// 正则表达式,忽略以 test 开头的文件夹
// 返回 false 则忽略
return !/^test/.test(filename)
}
// 跨域代理重写
const regExps = (value, reg) => {
return value.replace(new RegExp(reg, 'g'), '')
}
const alias = {
'@': pathResolve('src'),
}
// https://vitejs.dev/config/
export default defineConfig((mode) => {
const env = loadEnv(mode.mode, process.cwd())
return {
resolve: { alias },
base: env.VITE_PUBLIC_PATH,
server: {
host: '0.0.0.0',
port: env.VITE_PORT,
open: env.VITE_OPEN,
proxy:
env.VITE_PROXY_DOMAIN != null
? {
[env.VITE_PROXY_DOMAIN]: {
target: env.VITE_PROXY_DOMAIN_REAL,
ws: true,
changeOrigin: true,
rewrite: (path) => regExps(path, env.VITE_PROXY_DOMAIN),
},
}
: null,
},
plugins: [
vue(),
// 线上环境删除console.log
removeConsole(),
AutoImport({
resolvers: [
ElementPlusResolver({
importStyle: 'sass',
directives: true,
version: '2.1.1',
}),
],
}),
Components({
resolvers: [
ElementPlusResolver(),
// Auto register icon components
// 自动注册图标组件
IconsResolver(),
],
}),
Icons({
compiler: 'vue3',
autoInstall: true,
}),
// mock支持
viteMockServe({
ignore: mockIgnore,
mockPath: 'mock',
localEnabled: mode.mode === 'mock',
logger: true,
}),
Inspect(),
],
css: {
preprocessorOptions: {
scss: {
additionalData: `@use "@/style/scss/element/index.scss" as *;`,
},
},
},
build: {
sourcemap: false,
brotliSize: false,
// 消除打包大小超过500kb警告
chunkSizeWarningLimit: 2000,
},
}
})