const webpack = require(‘webpack’);
const CompressionPlugin = require(‘compression-webpack-plugin’)
const PATH = require(‘./src/utils/path.js’);
module.exports = {
//部署应用包时的基本 URL
publicPath: ‘./’,
//build时输出的文件目录
outputDir: ‘dist’,
//放置静态文件夹目录
assetsDir: ‘static’,
/* 代码保存时进行eslint检测 */
lintOnSave: false,
//生产环境是否要生成sourceMap
productionSourceMap: false,
devServer: {
port: 8800,
proxy: {
//接口请求,可以配置多个
‘/api/v1’: {
// 服务地址
target: PATH + ‘/api/v1’,
//当 changeOrigin 设置为 true 时,服务器收到的请求头中的 host 字段将被修改为您指定的地址,通常是您的 Vue 应用程序的地址(例如,localhost:5000
changeOrigin: true,
timeout: 600000,
// 路径重写,将’/api/v1/list’重写为’/list’
pathRewrite: {
‘^/api/v1’: ‘’
}
},
//静态资源请求
‘/public/static’: {
target: PATH + ‘/public/static’,
changeOrigin: true,
timeout: 60000,
pathRewrite: {
‘^/public/static’: ‘’
}
},
}
},
configureWebpack: {
plugins: [
new webpack.optimize.LimitChunkCountPlugin({
maxChunks: 5,
minChunkSize: 100
}),
new CompressionPlugin({
//所有匹配该正则的资源都会被处理。默认值是全部资源
test: /.js$|.css/,
//可以是 function(buf, callback) 或者字符串。对于字符串来说依照 zlib 的算法(或者 zopfli 的算法)。默认值是 “gzip”。
algorithm: ‘gzip’,
//只有大小大于该值的资源会被处理。单位是 bytes。默认值是 0。
threshold: 10240,
/只有压缩率小于这个值的资源才会被处理。默认值是 0.8。
minRatio: 0.8,
deleteOriginalAssets: false
})
],
//防止将某些 import 的包(package)打包到bundle中,而是在运行时(runtime)再去从外部获取这些扩展依赖
externals: {
‘vue’: ‘Vue’,
‘vue-router’: ‘VueRouter’,
‘axios’: ‘axios’
},
}
}
参考文档:https://www.webpackjs.com/