lilei 3 роки тому
батько
коміт
ac49eff888
3 змінених файлів з 54 додано та 2 видалено
  1. 38 0
      package-lock.json
  2. 1 0
      package.json
  3. 15 2
      vue.config.js

+ 38 - 0
package-lock.json

@@ -4413,6 +4413,44 @@
         }
       }
     },
+    "compression-webpack-plugin": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-2.0.0.tgz",
+      "integrity": "sha512-bDgd7oTUZC8EkRx8j0sjyCfeiO+e5sFcfgaFcjVhfQf5lLya7oY2BczxcJ7IUuVjz5m6fy8IECFmVFew3xLk8Q==",
+      "dev": true,
+      "requires": {
+        "cacache": "^11.2.0",
+        "find-cache-dir": "^2.0.0",
+        "neo-async": "^2.5.0",
+        "schema-utils": "^1.0.0",
+        "serialize-javascript": "^1.4.0",
+        "webpack-sources": "^1.0.1"
+      },
+      "dependencies": {
+        "cacache": {
+          "version": "11.3.3",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz",
+          "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==",
+          "dev": true,
+          "requires": {
+            "bluebird": "^3.5.5",
+            "chownr": "^1.1.1",
+            "figgy-pudding": "^3.5.1",
+            "glob": "^7.1.4",
+            "graceful-fs": "^4.1.15",
+            "lru-cache": "^5.1.1",
+            "mississippi": "^3.0.0",
+            "mkdirp": "^0.5.1",
+            "move-concurrently": "^1.0.1",
+            "promise-inflight": "^1.0.1",
+            "rimraf": "^2.6.3",
+            "ssri": "^6.0.1",
+            "unique-filename": "^1.1.1",
+            "y18n": "^4.0.0"
+          }
+        }
+      }
+    },
     "concat-map": {
       "version": "0.0.1",
       "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",

+ 1 - 0
package.json

@@ -60,6 +60,7 @@
     "babel-jest": "^23.6.0",
     "babel-plugin-import": "^1.11.0",
     "babel-plugin-transform-remove-console": "^6.9.4",
+    "compression-webpack-plugin": "^2.0.0",
     "eslint": "^5.8.0",
     "eslint-plugin-html": "^5.0.0",
     "eslint-plugin-vue": "^5.2.3",

+ 15 - 2
vue.config.js

@@ -1,6 +1,8 @@
 const path = require('path')
 const webpack = require('webpack')
 const createThemeColorReplacerPlugin = require('./config/plugin.config')
+// gzip 压缩
+const compressionWebpackPlugin = require('compression-webpack-plugin'); //引入插件
 
 function resolve (dir) {
   return path.join(__dirname, dir)
@@ -50,12 +52,23 @@ const vueConfig = {
     // webpack plugins
     plugins: [
       // Ignore all locale files of moment.js
-      new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/)
+      new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
+      new compressionWebpackPlugin({
+          //[file] 会被替换成原始资源。[path] 会被替换成原始资源的路径, [query] 会被替换成查询字符串。默认值是 "[path].gz[query]"。
+          filename: '[path].gz[query]', // 提示compression-webpack-plugin@3.0.0的话asset改为filename
+          //可以是 function(buf, callback) 或者字符串。对于字符串来说依照 zlib 的算法(或者 zopfli 的算法)。默认值是 "gzip"。
+          algorithm: 'gzip',
+          //所有匹配该正则的资源都会被处理。默认值是全部资源。
+          test: new RegExp('\\.(' + ['js', 'css'].join('|') + ')$'),
+          //只有大小大于该值的资源会被处理。单位是 bytes。默认值是 0。
+          threshold: 10240,
+          //只有压缩率小于这个值的资源才会被处理。默认值是 0.8。
+          minRatio: 0.8
+        })
     ],
     // if prod is on, add externals
     externals: isProd() ? prodExternals : {}
   },
-
   chainWebpack: (config) => {
     config.resolve.alias
       .set('@$', resolve('src'))