代码拉取完成,页面将自动刷新
const path = require('path')
const webpack = require('webpack')
//gzip
const CompressionWebpackPlugin = require('compression-webpack-plugin')
//代码混淆
const UglifyJsPlugin = require('terser-webpack-plugin');
//生产环境
const isProduction = process.env.NODE_ENV === "production"
function resolve(dir) {
return path.join(__dirname, dir);
}
module.exports = {
publicPath: isProduction ? "/cloudSchool/" : "/",
productionSourceMap: false,
chainWebpack: (config) => {
config.module
.rule('less')
.oneOf('vue')
.use('px2rem-loader')
.loader('px2rem-loader')
.before('postcss-loader') // this makes it work.
.options({remUnit: 192}) // remUnit: 192代表以1920px为整体,如果设计稿的尺寸是750px,这里的值为75
.end()
/* 添加分析工具*/
if (isProduction) {
if (process.env.npm_config_report) {
config.plugin('webpack-bundle-analyzer').use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin).end();
}
// 移除 prefetch 插件
config.plugins.delete('prefetch')
// 移除 preload 插件
config.plugins.delete('preload');
}
config.resolve.alias
.set('@', resolve('src'))
.set('assets', resolve('src/assets'))
.set('components', resolve('src/components'))
.set('netWork', resolve('src/netWork'))
.set('views', resolve('src/views'))
.set('vendor', resolve('src/vendor'))
},
configureWebpack: config => {
if (isProduction) {
// 为生产环境修改配置
config.plugins.push(
new UglifyJsPlugin({
terserOptions: {
compress: {
drop_debugger: true,
drop_console: true, //生产环境自动删除console
},
warnings: false,
},
sourceMap: false,
parallel: true,//使用多进程并行运行来提高构建速度。默认并发运行数:os.cpus().length - 1。
})
);
// gzip压缩
const productionGzipExtensions = ['html', 'js', 'css']
config.plugins.push(
new CompressionWebpackPlugin({
filename: '[path].gz[query]',
algorithm: 'gzip',
test: new RegExp(
'\\.(' + productionGzipExtensions.join('|') + ')$'
),
threshold: 10240, // 只有大小大于该值的资源会被处理 10240
minRatio: 0.8, // 只有压缩率小于这个值的资源才会被处理
deleteOriginalAssets: false // 删除原文件
})
)
// Ignore all locale files of moment.js
config.plugins.push(new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/))
}
},
devServer: {
disableHostCheck: true,
// proxy: {
// '/api': {
// // target: 'http://www.aifhold.com:9900',
// target: 'http://192.168.1.100:9900',
// ws: true,
// changeOrigin: true,
// pathRewrite: {
// '^/api': '' //通过pathRewrite重写地址,将前缀/api转为/
// }
// }
// }
},
pluginOptions: {
'style-resources-loader': {
preProcessor: 'less',
patterns: [
path.resolve(__dirname, './src/styles/index.less')
]
}
},
css: {
loaderOptions: {
less: {
modifyVars: {
"primary-color": "#4980F9",
},
javascriptEnabled: true,
},
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。