Files
ClassContent/历届学生/front-end-team-11/项目开发/上课项目/vuecli3.x/vue.config.js
2024-09-27 02:06:13 +08:00

66 lines
1.6 KiB
JavaScript

const { defineConfig } = require('@vue/cli-service')
const path = require('path')
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
const CompressionPlugin = require('compression-webpack-plugin')
const isProduction = process.env.NODE_ENV === 'production';
function resolve(dir) {
return path.join(__dirname, dir)
}
module.exports = defineConfig({
transpileDependencies: true,
publicPath: "./",
productionSourceMap: false,
devServer: {
port: 9000,
},
chainWebpack: (config) => {
config.plugins.delete('prefetch');
config.plugins.delete('preload');
config.resolve.alias
.set('@', resolve('src'))
.set('@less', resolve('src/assets/less/page'))
},
configureWebpack: (config) => {
if (isProduction) {
config.plugins.push(
// 生产环境自动删除console
new UglifyJsPlugin({
uglifyOptions: {
output: {
comments: false
},
compress: {
drop_console: true,
drop_debugger: false,
pure_funcs: ['console.log']// 移除console
},
warnings: false,
},
sourceMap: false,
parallel: true
})
);
return {
plugins: [
new BundleAnalyzerPlugin(),
new CompressionPlugin({
test: /\.js$|\.html$|\.css/, //匹配文件名
threshold: 102400, //对超过10k的数据进行压缩
deleteOriginalAssets: false //是否删除原文件
})
]
};
}
}
})