加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
vue.config.js 3.33 KB
一键复制 编辑 原始数据 按行查看 历史
MADAO 提交于 2020-08-03 09:34 . 数据权限
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,
},
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化