ysy 1 年之前
父節點
當前提交
8f04eefaaa
共有 1 個文件被更改,包括 98 次插入0 次删除
  1. 98 0
      vue.config.js

+ 98 - 0
vue.config.js

@@ -0,0 +1,98 @@
+const CompressionWebpackPlugin = require('compression-webpack-plugin');
+const {
+  transformElementScss
+} = require('ele-admin/lib/utils/dynamic-theme');
+const path = require('path');
+const {
+  name
+} = require('./package.json');
+
+function resolve(dir) {
+  return path.join(__dirname, dir);
+}
+
+module.exports = {
+  publicPath: '/wt',
+  lintOnSave: false,
+  productionSourceMap: false,
+  configureWebpack: {
+    performance: {
+      maxAssetSize: 2000000,
+      maxEntrypointSize: 2000000
+    },
+    output: {
+      // 把子应用打包成 umd 库格式
+      library: {
+        type: 'umd',
+        name: `${name}`
+      },
+
+      chunkLoadingGlobal: `webpackJsonp_${name}`
+    }
+  },
+  devServer: {
+    // 代理跨域的配置
+    proxy: {
+      // 当我们的本地的请求 有/api的时候,就会代理我们的请求地址向另外一个服务器发出请求
+      '/api': {
+        // target: 'http://124.71.68.31:50001', // 测试环境
+        // target: 'http://124.71.68.31:50001',
+
+        target: 'http://192.168.1.116:18086',
+        // target: 'http://192.168.1.125:18086',
+        changeOrigin: true, // 只有这个值为true的情况下 才表示开启跨域
+        pathRewrite: {
+          '^/api': ''
+        }
+      }
+    }
+  },
+  chainWebpack(config) {
+    config.plugins.delete('prefetch');
+    // 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();
+    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.NODE_ENV !== 'development') {
+      // gzip 压缩
+      config.plugin('compressionPlugin').use(
+        new CompressionWebpackPlugin({
+          test: /\.(js|css|html)$/,
+          threshold: 10240
+        })
+      );
+    }
+  },
+  css: {
+    loaderOptions: {
+      sass: {
+        sassOptions: {
+          outputStyle: 'expanded',
+          importer: transformElementScss()
+        }
+      }
+    }
+  }
+};