commit
						30df2ea8b6
					
				
				 11 changed files with 139 additions and 175 deletions
			
			
		| @ -1,142 +1,142 @@ | ||||
| "use strict"; | ||||
| const path = require("path"); | ||||
| const defaultSettings = require("./src/settings.js"); | ||||
| 'use strict' | ||||
| const path = require('path') | ||||
| const defaultSettings = require('./src/settings.js') | ||||
| 
 | ||||
| function resolve(dir) { | ||||
|     return path.join(__dirname, dir); | ||||
|   return path.join(__dirname, dir) | ||||
| } | ||||
| 
 | ||||
| const name = defaultSettings.title || "星油能源调度管理平台"; | ||||
| const port = 9528; | ||||
| const name = defaultSettings.title || '星油能源调度管理平台' | ||||
| const port = 9528 | ||||
| 
 | ||||
| module.exports = { | ||||
|     publicPath: "./", | ||||
|     outputDir: "dist", | ||||
|     assetsDir: "./static", | ||||
|     lintOnSave: process.env.NODE_ENV === "development", | ||||
|     productionSourceMap: false, // 改为false可一定程度上解决浏览器f12查看到源码的问题
 | ||||
|     devServer: { | ||||
|         disableHostCheck: true, | ||||
|         port: port, | ||||
|         overlay: { | ||||
|             warnings: false, | ||||
|             errors: true | ||||
|         }, | ||||
|         proxy: { | ||||
|             [process.env.VUE_APP_BASE_API]: { | ||||
|                 // target: "http://uat.xingoil.com/adminapi",
 | ||||
|                 // target: 'https://www.xingoil.com/adminapi',
 | ||||
|                 target: `http://192.168.0.27:38080`, | ||||
|                 changeOrigin: true, | ||||
|                 pathRewrite: { | ||||
|                     ["^" + process.env.VUE_APP_BASE_API]: "" | ||||
|                 } | ||||
|             }, | ||||
|             [process.env.VUE_APP_UPLOAD_URL]: { | ||||
|                 target: `http://192.168.0.31:38080`, | ||||
|                 changeOrigin: true, | ||||
|                 pathRewrite: { | ||||
|                     ["^" + process.env.VUE_APP_BASE_API]: "" | ||||
|                 } | ||||
|             }, | ||||
|             [process.env.VUE_APP_BASE_LSM_API]: { | ||||
|                 target: `http://121.41.3.91:8085`, | ||||
|                 changeOrigin: true, | ||||
|                 pathRewrite: { | ||||
|                     ["^" + process.env.VUE_APP_BASE_LSM_API]: "" | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|   publicPath: './', | ||||
|   outputDir: 'dist', | ||||
|   assetsDir: './static', | ||||
|   lintOnSave: process.env.NODE_ENV === 'development', | ||||
|   productionSourceMap: false, // 改为false可一定程度上解决浏览器f12查看到源码的问题
 | ||||
|   devServer: { | ||||
|     disableHostCheck: true, | ||||
|     port: port, | ||||
|     overlay: { | ||||
|       warnings: false, | ||||
|       errors: true | ||||
|     }, | ||||
|     configureWebpack: { | ||||
|         name: name, | ||||
|         resolve: { | ||||
|             alias: { | ||||
|                 "@": resolve("src") // 别名。开启后@表示src下目录
 | ||||
|             } | ||||
|         }, | ||||
|         externals: { | ||||
|             "./cptable": "var cptable", | ||||
|             AMap: "AMap" | ||||
|     proxy: { | ||||
|       [process.env.VUE_APP_BASE_API]: { | ||||
|         // target: "http://uat.xingoil.com/adminapi",
 | ||||
|         // target: 'https://www.xingoil.com/adminapi',
 | ||||
|         target: `http://192.168.0.22:38080`, | ||||
|         changeOrigin: true, | ||||
|         pathRewrite: { | ||||
|           ['^' + process.env.VUE_APP_BASE_API]: '' | ||||
|         } | ||||
|       }, | ||||
|       [process.env.VUE_APP_UPLOAD_URL]: { | ||||
|         target: `http://192.168.0.31:38080`, | ||||
|         changeOrigin: true, | ||||
|         pathRewrite: { | ||||
|           ['^' + process.env.VUE_APP_BASE_API]: '' | ||||
|         } | ||||
|       }, | ||||
|       [process.env.VUE_APP_BASE_LSM_API]: { | ||||
|         target: `http://121.41.3.91:8085`, | ||||
|         changeOrigin: true, | ||||
|         pathRewrite: { | ||||
|           ['^' + process.env.VUE_APP_BASE_LSM_API]: '' | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   configureWebpack: { | ||||
|     name: name, | ||||
|     resolve: { | ||||
|       alias: { | ||||
|         '@': resolve('src') // 别名。开启后@表示src下目录
 | ||||
|       } | ||||
|     }, | ||||
|     chainWebpack(config) { | ||||
|         config.plugins.delete("preload"); // TODO: need test
 | ||||
|         config.plugins.delete("prefetch"); // TODO: need test
 | ||||
|         config.entry.app = ["babel-polyfill", "./src/main.js"]; | ||||
|         // set svg-sprite-loader
 | ||||
|         config.module | ||||
|             .rule("svg") | ||||
|             .exclude.add(resolve("src/icons")) | ||||
|             .end(); | ||||
|         config.module | ||||
|             .rule("icons") | ||||
|             .test(/\.svg$/) | ||||
|             .include.add(resolve("src/icons")) | ||||
|             .end() | ||||
|             .use("svg-sprite-loader") | ||||
|             .loader("svg-sprite-loader") | ||||
|             .options({ | ||||
|                 symbolId: "icon-[name]" | ||||
|             }) | ||||
|             .end(); | ||||
|     externals: { | ||||
|       './cptable': 'var cptable', | ||||
|       AMap: 'AMap' | ||||
|     } | ||||
|   }, | ||||
|   chainWebpack(config) { | ||||
|     config.plugins.delete('preload') // TODO: need test
 | ||||
|     config.plugins.delete('prefetch') // TODO: need test
 | ||||
|     config.entry.app = ['babel-polyfill', './src/main.js'] | ||||
|     // set svg-sprite-loader
 | ||||
|     config.module | ||||
|       .rule('svg') | ||||
|       .exclude.add(resolve('src/icons')) | ||||
|       .end() | ||||
|     config.module | ||||
|       .rule('icons') | ||||
|       .test(/\.svg$/) | ||||
|       .include.add(resolve('src/icons')) | ||||
|       .end() | ||||
|       .use('svg-sprite-loader') | ||||
|       .loader('svg-sprite-loader') | ||||
|       .options({ | ||||
|         symbolId: 'icon-[name]' | ||||
|       }) | ||||
|       .end() | ||||
| 
 | ||||
|         if (process.env.use_analyzer) { | ||||
|             // 分析
 | ||||
|             config | ||||
|                 .plugin("webpack-bundle-analyzer") | ||||
|                 .use(require("webpack-bundle-analyzer").BundleAnalyzerPlugin); | ||||
|         } | ||||
|     if (process.env.use_analyzer) { | ||||
|       // 分析
 | ||||
|       config | ||||
|         .plugin('webpack-bundle-analyzer') | ||||
|         .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin) | ||||
|     } | ||||
| 
 | ||||
|         // set preserveWhitespace
 | ||||
|         config.module | ||||
|             .rule("vue") | ||||
|             .use("vue-loader") | ||||
|             .loader("vue-loader") | ||||
|             .tap(options => { | ||||
|                 options.compilerOptions.preserveWhitespace = true; | ||||
|                 return options; | ||||
|             }) | ||||
|             .end(); | ||||
|     // set preserveWhitespace
 | ||||
|     config.module | ||||
|       .rule('vue') | ||||
|       .use('vue-loader') | ||||
|       .loader('vue-loader') | ||||
|       .tap(options => { | ||||
|         options.compilerOptions.preserveWhitespace = true | ||||
|         return options | ||||
|       }) | ||||
|       .end() | ||||
| 
 | ||||
|         config; | ||||
|         // https://webpack.js.org/configuration/devtool/#development.when(process.env.NODE_ENV === 'development', config => config.devtool('cheap-source-map'))
 | ||||
|     config | ||||
|     // https://webpack.js.org/configuration/devtool/#development.when(process.env.NODE_ENV === 'development', config => config.devtool('cheap-source-map'))
 | ||||
| 
 | ||||
|         config.when(process.env.NODE_ENV !== "development", config => { | ||||
|             config | ||||
|                 .plugin("ScriptExtHtmlWebpackPlugin") | ||||
|                 .after("html") | ||||
|                 .use("script-ext-html-webpack-plugin", [ | ||||
|                     { | ||||
|                         // `runtime` must same as runtimeChunk name. default is `runtime`
 | ||||
|                         inline: /runtime\..*\.js$/ | ||||
|                     } | ||||
|                 ]) | ||||
|                 .end(); | ||||
|             config.optimization.splitChunks({ | ||||
|                 chunks: "all", | ||||
|                 cacheGroups: { | ||||
|                     libs: { | ||||
|                         name: "chunk-libs", | ||||
|                         test: /[\\/]node_modules[\\/]/, | ||||
|                         priority: 10, | ||||
|                         chunks: "initial" // only package third parties that are initially dependent
 | ||||
|                     }, | ||||
|                     elementUI: { | ||||
|                         name: "chunk-elementUI", // split elementUI into a single package
 | ||||
|                         priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app
 | ||||
|                         test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm
 | ||||
|                     }, | ||||
|                     commons: { | ||||
|                         name: "chunk-commons", | ||||
|                         test: resolve("src/components"), // can customize your rules
 | ||||
|                         minChunks: 3, // minimum common number
 | ||||
|                         priority: 5, | ||||
|                         reuseExistingChunk: true | ||||
|                     } | ||||
|                 } | ||||
|             }); | ||||
|             config.optimization.runtimeChunk("single"); | ||||
|         }); | ||||
|     } | ||||
| }; | ||||
|     config.when(process.env.NODE_ENV !== 'development', config => { | ||||
|       config | ||||
|         .plugin('ScriptExtHtmlWebpackPlugin') | ||||
|         .after('html') | ||||
|         .use('script-ext-html-webpack-plugin', [ | ||||
|           { | ||||
|             // `runtime` must same as runtimeChunk name. default is `runtime`
 | ||||
|             inline: /runtime\..*\.js$/ | ||||
|           } | ||||
|         ]) | ||||
|         .end() | ||||
|       config.optimization.splitChunks({ | ||||
|         chunks: 'all', | ||||
|         cacheGroups: { | ||||
|           libs: { | ||||
|             name: 'chunk-libs', | ||||
|             test: /[\\/]node_modules[\\/]/, | ||||
|             priority: 10, | ||||
|             chunks: 'initial' // only package third parties that are initially dependent
 | ||||
|           }, | ||||
|           elementUI: { | ||||
|             name: 'chunk-elementUI', // split elementUI into a single package
 | ||||
|             priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app
 | ||||
|             test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm
 | ||||
|           }, | ||||
|           commons: { | ||||
|             name: 'chunk-commons', | ||||
|             test: resolve('src/components'), // can customize your rules
 | ||||
|             minChunks: 3, // minimum common number
 | ||||
|             priority: 5, | ||||
|             reuseExistingChunk: true | ||||
|           } | ||||
|         } | ||||
|       }) | ||||
|       config.optimization.runtimeChunk('single') | ||||
|     }) | ||||
|   } | ||||
| } | ||||
|  | ||||
					Loading…
					
					
				
		Reference in new issue