/**
|
* 配置参考:
|
* https://cli.vuejs.org/zh/config/
|
*/
|
// const url = 'http://localhost:9999'
|
// const url = 'http://192.168.0.164:9999'
|
// const url = 'http://192.168.0.126:9999/'
|
// const url = 'http://boying.tpddns.cn:9999/'
|
const url = 'http://36.138.175.42:9999/'
|
const webpack = require('webpack')
|
const CompressionWebpackPlugin = require('compression-webpack-plugin')
|
const productionGzipExtensions = ['js', 'css']
|
|
module.exports = {
|
|
lintOnSave: true,
|
productionSourceMap: false,
|
chainWebpack: config => {
|
const entry = config.entry('app')
|
entry
|
.add('babel-polyfill')
|
.end()
|
entry
|
.add('classlist-polyfill')
|
.end()
|
},
|
css: {
|
// 忽略 CSS order 顺序警告
|
extract: { ignoreOrder: true }
|
},
|
configureWebpack: (config) => {
|
if (process.env.NODE_ENV === 'production') {
|
// 仅在生产环境下启用该配置
|
return {
|
performance: {
|
// 打包后最大文件大小限制
|
maxAssetSize: 1024000
|
},
|
plugins: [
|
new CompressionWebpackPlugin({
|
filename: '[path].gz[query]',
|
algorithm: 'gzip',
|
test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
|
threshold: 1024, // 只有大小大于该值的资源会被处理,当前配置为对于超过1k的数据进行处理,不足1k的可能会越压缩越大
|
minRatio: 0.99, // 只有压缩率小于这个值的资源才会被处理
|
deleteOriginalAssets: true // 删除原文件
|
})
|
]
|
}
|
} else {
|
return {
|
plugins: [
|
new webpack.ProvidePlugin({
|
$:"jquery",
|
jQuery:"jquery",
|
"windows.jQuery":"jquery"
|
})
|
],
|
resolve: {
|
alias: {
|
'vue$': 'vue/dist/vue.esm.js'
|
}
|
}
|
}
|
}
|
},
|
// 配置转发代理
|
devServer: {
|
disableHostCheck: true,
|
port: 8080,
|
proxy: {
|
'/': {
|
target: url,
|
ws: false, // 需要websocket 开启
|
pathRewrite: {
|
'^/': '/'
|
}
|
}
|
// 3.5 以后不需要再配置
|
}
|
}
|
}
|