|  |  | 
 |  |  | const path = require('path') | 
 |  |  | const resolve = dir => { | 
 |  |  |   return path.join(__dirname, dir) | 
 |  |  | /* | 
 |  |  |  * @Author: daidai | 
 |  |  |  * @Date: 2021-11-22 14:57:15 | 
 |  |  |  * @LastEditors: Please set LastEditors | 
 |  |  |  * @LastEditTime: 2022-04-29 15:12:50 | 
 |  |  |  */ | 
 |  |  | const path = require("path"); | 
 |  |  | function resolve(dir) { | 
 |  |  |   return path.join(__dirname, dir); | 
 |  |  | } | 
 |  |  |  | 
 |  |  | module.exports = { | 
 |  |  |   publicPath: './', | 
 |  |  |   devServer:{ | 
 |  |  |     host:'0.0.0.0', | 
 |  |  |     port:8090 | 
 |  |  |   outputDir: process.env.VUE_APP_outputDir || 'dist', | 
 |  |  |   assetsDir: 'static', | 
 |  |  |   filenameHashing: true, | 
 |  |  |   lintOnSave: false, | 
 |  |  |   runtimeCompiler: false, | 
 |  |  |   transpileDependencies: [], | 
 |  |  |   productionSourceMap: false, | 
 |  |  |   css: { | 
 |  |  |     // 是否使用css分离插件 ExtractTextPlugin | 
 |  |  |     extract: process.env.NODE_ENV === "production" ? true : false,//是否将组件中的 CSS 提取至一个独立的 CSS 文件中 (而不是动态注入到 JavaScript 中的 inline 代码)。 | 
 |  |  |     sourceMap: false,//是否为 CSS 开启 source map。设置为 true 之后可能会影响构建的性能。 | 
 |  |  |     loaderOptions: { | 
 |  |  |       sass: { | 
 |  |  |         prependData: `@import "@/assets/css/variable.scss";` | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     requireModuleExtension: true, | 
 |  |  |   }, | 
 |  |  |   chainWebpack: config => { | 
 |  |  |  | 
 |  |  |   chainWebpack: (config) => { | 
 |  |  |     // 配置别名 | 
 |  |  |     config.resolve.alias | 
 |  |  |       .set('_c', resolve('src/components')) // key,value自行定义,比如.set('@@', resolve('src/components')) | 
 |  |  |       .set('@', resolve('src')) | 
 |  |  |       .set('assets', resolve('src/assets')) | 
 |  |  |       .set('assetsBig', resolve('src/pages/big-screen/assets')) | 
 |  |  |       .set('components', resolve('src/components')) | 
 |  |  |       .set('views', resolve('src/views')) | 
 |  |  |       .set('api', resolve('src/api')) | 
 |  |  |       .set('lib', resolve('src/lib')) | 
 |  |  |  | 
 |  |  |     if (process.env.NODE_ENV === "production") { | 
 |  |  |       // 删除系统默认的splitChunk | 
 |  |  |       config.optimization.delete("splitChunks"); | 
 |  |  |     } | 
 |  |  |     // 删除预加载 | 
 |  |  |     //  // 移除 prefetch  插件 | 
 |  |  |     //  config.plugins.delete('prefetch-index') | 
 |  |  |     //  // 移除 preload 插件 | 
 |  |  |     //  config.plugins.delete('preload-index'); | 
 |  |  |     //   config.optimization.minimizer('terser').tap((args) => { | 
 |  |  |     //     // 去除生产环境console | 
 |  |  |     //     args[0].terserOptions.compress.drop_console = true | 
 |  |  |     //     return args | 
 |  |  |     //   }) | 
 |  |  |   }, | 
 |  |  |   lintOnSave: false | 
 |  |  | } | 
 |  |  |   configureWebpack: config => { | 
 |  |  |     // 给输出的js名称添加hash | 
 |  |  |     config.output.filename = "static/js/[name].[hash].js"; | 
 |  |  |     config.output.chunkFilename = "static/js/[name].[hash].js"; | 
 |  |  |     config.optimization = { | 
 |  |  |       splitChunks: { | 
 |  |  |         cacheGroups: { | 
 |  |  |           // 抽离所有入口的公用资源为一个chunk | 
 |  |  |           common: { | 
 |  |  |             name: "chunk-common", | 
 |  |  |             chunks: "initial", | 
 |  |  |             minChunks: 2, | 
 |  |  |             maxInitialRequests: 5, | 
 |  |  |             minSize: 0, | 
 |  |  |             priority: 1, | 
 |  |  |             reuseExistingChunk: true, | 
 |  |  |             enforce: true | 
 |  |  |           }, | 
 |  |  |           // 抽离node_modules下的库为一个chunk | 
 |  |  |           // vendors: { | 
 |  |  |           //   name: "chunk-vendors", | 
 |  |  |           //   test: /[\\/]node_modules[\\/]/, | 
 |  |  |           //   chunks: "initial", | 
 |  |  |           //   priority: 2, | 
 |  |  |           //   reuseExistingChunk: true, | 
 |  |  |           //   enforce: true | 
 |  |  |           // }, | 
 |  |  |           element: { | 
 |  |  |             name: "chunk-element-ui", | 
 |  |  |             test: /[\\/]node_modules[\\/]element-ui[\\/]/, | 
 |  |  |             chunks: "all", | 
 |  |  |             priority: 3, | 
 |  |  |             reuseExistingChunk: true, | 
 |  |  |             enforce: true | 
 |  |  |           }, | 
 |  |  |           yhhtUi: { | 
 |  |  |             name: "chunk-yhht-ui", | 
 |  |  |             test: /[\\/]node_modules[\\/]yhht-ui[\\/]/, | 
 |  |  |             chunks: "all", | 
 |  |  |             priority: 4, | 
 |  |  |             reuseExistingChunk: true, | 
 |  |  |             enforce: true | 
 |  |  |           }, | 
 |  |  |           datav: { | 
 |  |  |             name: "chunk-datav", | 
 |  |  |             test: /[\\/]node_modules[\\/]@jiaminghi[\\/]data-view[\\/]/, | 
 |  |  |             chunks: "all", | 
 |  |  |             priority: 4, | 
 |  |  |             reuseExistingChunk: true, | 
 |  |  |             enforce: true | 
 |  |  |           }, | 
 |  |  |         } | 
 |  |  |       } | 
 |  |  |     }; | 
 |  |  |   }, | 
 |  |  |   // 是否为 Babel 或 TypeScript 使用 thread-loader。该选项在系统的 CPU 有多于一个内核时自动启用,仅作用于生产构建。 | 
 |  |  |   parallel: require('os').cpus().length > 1, | 
 |  |  |   devServer: { | 
 |  |  |     // '/api':{ | 
 |  |  |     //   target: 'http://192.168.8.211:8098/', | 
 |  |  |     //   // 跨域配置 | 
 |  |  |     //   changeOrigin: true, | 
 |  |  |     //   // 路径重写  | 
 |  |  |     //   pathRewrite:{ | 
 |  |  |     //         '^/api': '/' | 
 |  |  |     //     } | 
 |  |  |     // } | 
 |  |  |   }, | 
 |  |  |   pluginOptions: { | 
 |  |  |   } | 
 |  |  | } |