const CompressionPlugin = require('compression-webpack-plugin'); const webpack = require('webpack'); const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin module.exports = { publicPath: process.env.NODE_ENV === 'production' ? '' : '/', productionSourceMap: false, lintOnSave: false, chainWebpack: config => { if (process.env.NODE_ENV === 'production') { if (process.env.npm_config_report) { config .plugin('webpack-bundle-analyzer') .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin) } config.plugins.delete('prefetch'); } }, configureWebpack: config => { if (process.env.NODE_ENV === 'production') { config.optimization = { splitChunks: { chunks: "all", //async异步代码分割 initial同步代码分割 all同步异步分割都开启 minSize: 10000, //字节 引入的文件大于30kb才进行分割 // minChunks: 2, //模块至少使用次数 // maxAsyncRequests: 25, //同时加载的模块数量最多是5个,只分割出同时引入的前5个文件 // maxInitialRequests: 30, //首页加载的时候引入的文件最多3个 automaticNameDelimiter: '-', //缓存组和生成文件名称之间的连接符 // name: true, //缓存组里面的filename生效,覆盖默认命名 cacheGroups: { // vue: { // name: "vue", // test: /[\\/]node_modules[\\/]vue[\\/]/, // test: /[\\/]node_modules[\\/]vue[\\/]/, // priority: -10 // }, // vuex: { // name: 'vuex', // test: /[\\/]node_modules[\\/]vuex[\\/]/, // priority: -10 // }, // 'vue-router': { // name: 'vue-router', // test: /[\\/]node_modules[\\/]vue-router[\\/]/, // priority: -10 // }, // 'element-ui': { // name: 'element-ui', // test: /[\\/]node_modules[\\/]element-ui[\\/]/, // priority: -10 // }, // vendors: { // test: /[\\\/]node_modules[\\\/]/, // priority: -20 // }, } } } // return { // plugins: [ // new CompressionPlugin({ // test: /\.js$|\.html$|\.css$/, // threshold: 10240, // deleteOriginalAssets: false, // }), // new webpack.optimize.MinChunkSizePlugin({ // minChunkSize: 10000 // Minimum number of characters // }), // new WebpackLifeCyclePlugin(), // new BundleAnalyzerPlugin() // ] // } // config.plugins = [ // new CompressionPlugin({ // test: /\.js$|\.html$|\.css$/, // threshold: 10240, // deleteOriginalAssets: true, // }), // new webpack.optimize.MinChunkSizePlugin({ // minChunkSize: 10000 // Minimum number of characters // }), // new WebpackLifeCyclePlugin(), // // new BundleAnalyzerPlugin() // ] } }, parallel: true, devServer: { proxy: { '/': { // target: 'http://192.168.2.145:9600/spfm', // target: 'http://192.168.2.149:9600', // target: 'http://10.64.42.70:8088/', // target: 'http://114.215.71.182:29600', // target: 'http://10.230.26.15:8000/spfm', // target: 'http://127.0.0.1:9600/', target: 'http://192.168.2.142:9610/', // target: 'http://192.168.2.170:9600/', // target: 'http://192.168.2.169:9600/', changeOrigin: true } } }, transpileDependencies: ['color-string'] // 此段为增加配置选项 }