You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.5 KiB
54 lines
1.5 KiB
|
2 months ago
|
const CompressionPlugin = require('compression-webpack-plugin');
|
||
|
|
|
||
|
|
module.exports = {
|
||
|
|
publicPath: '/',
|
||
|
|
devServer: {
|
||
|
|
host: '127.0.0.1',
|
||
|
|
port: 8888,
|
||
|
|
proxy: {
|
||
|
|
'/hiver': {
|
||
|
|
// target: 'https://hbkuaishi.com', // 正式
|
||
|
|
target: 'http://192.168.100.42:8888', // 本地
|
||
|
|
// target: 'https://storage.xenjoyou.com', // 测试
|
||
|
|
ws: false
|
||
|
|
},
|
||
|
|
'/foo': {
|
||
|
|
target: '<other_url>'
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 打包时不生成.map文件 避免看到源码
|
||
|
|
productionSourceMap: false,
|
||
|
|
// 部署优化
|
||
|
|
configureWebpack: {
|
||
|
|
// 使用CDN
|
||
|
|
externals: {
|
||
|
|
vue: 'Vue',
|
||
|
|
'vue-i18n': 'VueI18n',
|
||
|
|
axios: 'axios',
|
||
|
|
'vue-router': 'VueRouter',
|
||
|
|
vuex: 'Vuex',
|
||
|
|
'view-design': 'iview',
|
||
|
|
echarts: 'echarts',
|
||
|
|
apexcharts: 'ApexCharts',
|
||
|
|
xlsx: 'XLSX',
|
||
|
|
dplayer: 'DPlayer',
|
||
|
|
'print-js': 'printJS',
|
||
|
|
html2canvas: 'html2canvas',
|
||
|
|
'vue-lazyload': 'VueLazyload',
|
||
|
|
gitalk: 'Gitalk',
|
||
|
|
stompjs: 'Stomp',
|
||
|
|
'sockjs-client': 'SockJS',
|
||
|
|
vuedraggable: 'vuedraggable',
|
||
|
|
viewerjs: 'Viewer',
|
||
|
|
'watermark-dom': 'watermark'
|
||
|
|
},
|
||
|
|
plugins: [
|
||
|
|
// GZIP压缩
|
||
|
|
new CompressionPlugin({
|
||
|
|
test: /\.js$|\.html$|\.css/, // 匹配文件
|
||
|
|
threshold: 10240 // 对超过10k文件压缩
|
||
|
|
})
|
||
|
|
]
|
||
|
|
}
|
||
|
|
}
|