| | |
| | | // 详细配置请参考https://cli.vuejs.org/zh/config/#vue-config-js |
| | | // const outputDir = process.env.VUE_APP_CONTEXT_PATH.substring(1, process.env.VUE_APP_CONTEXT_PATH.length - 1) |
| | | // const outputDir = process.env.VUE_APP_CONTEXT_PATH.substring(1, process.env.VUE_APP_CONTEXT_PATH.length) |
| | | const CompressionPlugin = require('compression-webpack-plugin') |
| | | module.exports = { |
| | | publicPath: './', |
| | | outputDir: process.env.VUE_APP_CONTEXT_NAME, |
| | |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | configureWebpack: config => { |
| | | // if (process.env.NODE_ENV === 'production' || process.env.NODE_ENV === 'test') { |
| | | return { |
| | | plugins: [ |
| | | new CompressionPlugin({ |
| | | algorithm: 'gzip', // 使用gzip压缩 |
| | | test: /\.(js|css|html)$/, // 匹配文件类型 |
| | | threshold: 10240, // 只处理比这个值大的资源。值是字节,10240字节=10KB |
| | | minRatio: 0.8 // 压缩比率,只有压缩率小于这个值的资源才会被处理 |
| | | }) |
| | | ], |
| | | optimization: { |
| | | runtimeChunk: 'single', |
| | | splitChunks: { |
| | | chunks: 'all', |
| | | maxInitialRequests: Infinity, |
| | | minSize: 20000, |
| | | cacheGroups: { |
| | | vendors: { |
| | | test: /[\\/]node_modules[\\/]/, // 使用正则匹配node_modules中引入的模块 |
| | | priority: -10, // 优先级值越大优先级越高,默认-10,不用修改 |
| | | name(module) { |
| | | // 设定分包以后的文件模块名字,按照包名字替换拼接一下 |
| | | |
| | | if (!module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)) return; |
| | | const packageName = module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[1]; |
| | | return `npm.${packageName.replace('@', '')}`; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // } |
| | | } |
| | | } |