| 
					
				 | 
			
			
				@@ -1,30 +1,138 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+'use strict' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const path = require('path') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const NodePolyfillPlugin = require('node-polyfill-webpack-plugin') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const { defineConfig } = require('@vue/cli-service') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const { sassTrue } = require('sass') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-module.exports = defineConfig({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  configureWebpack: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    plugins: [new NodePolyfillPlugin()], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function resolve(dir) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return path.join(__dirname, dir) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const CompressionPlugin = require('compression-webpack-plugin') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const name = process.env.VUE_APP_TITLE // 网页标题 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const port = process.env.port || process.env.npm_config_port || 9527 // 端口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// vue.config.js 配置说明 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 这里只列一部分,具体配置参考文档 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 部署生产环境和开发环境下的URL。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  publicPath:"./", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  outputDir: 'web', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  assetsDir: 'static', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 是否开启eslint保存检测,有效值:ture | false | 'error' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  lintOnSave: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  productionSourceMap: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // webpack-dev-server 相关配置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   devServer: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    port: 8081, // 端口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    open: false, // 启动后打开浏览器 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    client: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      overlay: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //host: '0.0.0.0', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    client:{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      overlay:false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    /*本地开发请求代理*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    port: port, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    open: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     proxy: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // detail: https://cli.vuejs.org/config/#devserver-proxy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       '/dev-api': { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         // target: "http://47.92.229.224:8080", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // target: "http://10.87.21.103:8080", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        target: "http://10.87.11.105:8080", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // target: "http://10.87.21.107:9002", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // ws:true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        changOrigin:true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        pathRewrite:{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          '^/dev-api':'/' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        target: process.env.VUE_APP_BASE_API, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        changeOrigin: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        pathRewrite: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          '/dev-api' : '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  configureWebpack: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    name: name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    resolve: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      alias: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '@': resolve('src') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    plugins: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      new NodePolyfillPlugin(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      new CompressionPlugin({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        cache: false,                   // 不启用文件缓存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        test: /\.(js|css|html)?$/i,     // 压缩文件格式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        filename: '[path].gz[query]',   // 压缩后的文件名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        algorithm: 'gzip',              // 使用gzip压缩 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        minRatio: 0.8                   // 压缩率小于1才会压缩 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  chainWebpack(config) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    config.plugins.delete('preload') // TODO: need test 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    config.plugins.delete('prefetch') // TODO: need test 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    config.optimization.minimizer('terser').tap((args) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      args[0].terserOptions.compress.drop_console = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return args 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // set svg-sprite-loader 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    config.module 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      .rule('svg') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      .exclude.add(resolve('src/assets/icons')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      .end() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    config.module 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      .rule('icons') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      .test(/\.svg$/) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      .include.add(resolve('src/assets/icons')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      .end() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      .use('svg-sprite-loader') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      .loader('svg-sprite-loader') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      .options({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        symbolId: 'icon-[name]' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      .end() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    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'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             from: path.resolve(__dirname, './public/robots.txt'), //防爬虫文件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             to: './' //到根目录下 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |