const CompressionPlugin = require("compression-webpack-plugin"); const webpack = require("webpack"); const BundleAnalyzerPlugin = require("webpack-bundle-analyzer").BundleAnalyzerPlugin; module.exports = { outputDir: process.env.outputDir, 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: -10qa // }, // '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: { // 开发环境变化可注释 ⬇️⬇️ "/market/CMK": { target: "http://192.168.2.124:9113", ws: false, changeOrigin: true, pathRewrite: { "^/market": "", }, }, "/market/mk": { target: "http://192.168.2.124:9113", ws: false, changeOrigin: true, pathRewrite: { "^/market": "", }, }, "/market/techcentergj": { target: "http://192.168.2.124:9113", ws: false, changeOrigin: true, pathRewrite: { "^/market": "", }, }, "/mkWangge": { target: "http://192.168.2.124:9113", ws: false, changeOrigin: true, pathRewrite: { "^/market": "", }, }, "/api": { target: "http://43.138.50.94:7777", ws: false, changeOrigin: true, pathRewrite: { "^/api": "", }, }, // 开发环境变化可注释 ⬆️⬆️ "/": { // 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://192.168.1.9:9600/spfm', // target: 'http://127.0.0.1:9600/', // target: 'http://192.168.0.156:9600/', // target: 'http://192.168.2.92:9600/', // target: 'http://192.168.2.124:9600/', // target: "http://124.223.66.248:9600", target: "http://43.138.50.94:9600", // target: 'http://192.168.2.44:9600/', // target: 'http://192.168.2.92:9600', // target: "http://124.223.66.248:9600", // target: "http://43.138.50.94:9600", changeOrigin: true, }, }, }, transpileDependencies: ["color-string"], // 此段为增加配置选项 };