diff --git a/package.json b/package.json index 7259c503..24ac829e 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,9 @@ "codecov": "codecov -F js", "postinstall": "rimraf node_modules/jest-runtime/node_modules/babel-core node_modules/jest-config/node_modules/babel-core" }, + "resolutions": { + "uglify-es": "npm:terser" + }, "dependencies": { "@babel/runtime": "^7.0.0-beta.55", "admin-lte": "^2.4.2", @@ -52,6 +55,7 @@ "babel-eslint": "^8.2.6", "babel-loader": "^8.0.0-beta.4", "babel-plugin-dynamic-import-node": "^2.0.0", + "cache-loader": "^1.2.2", "codecov": "^3.0.0", "copy-webpack-plugin": "^4.5.2", "css-loader": "^1.0.0", diff --git a/webpack.config.js b/webpack.config.js index 7e892d00..3a9a66e6 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,6 +1,7 @@ const VueLoaderPlugin = require('vue-loader/lib/plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const CopyWebpackPlugin = require('copy-webpack-plugin'); +const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); const WebpackBar = require('webpackbar'); const devMode = !process.argv.includes('-p'); @@ -34,14 +35,17 @@ module.exports = [{ { test: /\.js$/, exclude: /node_modules/, - loader: 'babel-loader', - options: { - cacheDirectory: true - } + use: [ + 'cache-loader', + 'babel-loader' + ] }, { test: /\.vue$/, - loader: 'vue-loader' + use: [ + 'cache-loader', + 'vue-loader' + ] }, { test: /\.(css|styl(us)?)$/, @@ -91,6 +95,15 @@ module.exports = [{ }, ]), ], + optimization: { + minimizer: [ + new UglifyJsPlugin({ + cache: true, + parallel: 4, + extractComments: 'lib-license.txt' + }) + ] + }, resolve: { extensions: ['.js', '.vue', '.json'] }, diff --git a/yarn.lock b/yarn.lock index f153438e..8c3c177f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1724,6 +1724,15 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +cache-loader@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-1.2.2.tgz#6d5c38ded959a09cc5d58190ab5af6f73bd353f5" + dependencies: + loader-utils "^1.1.0" + mkdirp "^0.5.1" + neo-async "^2.5.0" + schema-utils "^0.4.2" + cached-path-relative@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.1.tgz#d09c4b52800aa4c078e2dd81a869aac90d2e54e7" @@ -2034,14 +2043,10 @@ combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" -commander@^2.9.0: +commander@^2.9.0, commander@~2.16.0: version "2.16.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.16.0.tgz#f16390593996ceb4f3eeb020b31d78528f7f8a50" -commander@~2.13.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" - commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -6526,7 +6531,7 @@ sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" -schema-utils@^0.4.0, schema-utils@^0.4.3, schema-utils@^0.4.4, schema-utils@^0.4.5: +schema-utils@^0.4.0, schema-utils@^0.4.2, schema-utils@^0.4.3, schema-utils@^0.4.4, schema-utils@^0.4.5: version "0.4.5" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e" dependencies: @@ -6727,7 +6732,7 @@ source-map-support@^0.4.15: dependencies: source-map "^0.5.6" -source-map-support@^0.5.6: +source-map-support@^0.5.6, source-map-support@~0.5.6: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" dependencies: @@ -7266,12 +7271,13 @@ typeface-ubuntu@^0.0.54: version "0.0.54" resolved "https://registry.yarnpkg.com/typeface-ubuntu/-/typeface-ubuntu-0.0.54.tgz#1219d28be0a86b9a2d779e53d8b89d13de911ac3" -uglify-es@^3.3.4: - version "3.3.9" - resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" +uglify-es@^3.3.4, "uglify-es@npm:terser": + version "3.8.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-3.8.1.tgz#cb70070ac9e0a71add169dfb63c0a64fca2738ac" dependencies: - commander "~2.13.0" + commander "~2.16.0" source-map "~0.6.1" + source-map-support "~0.5.6" uglify-js@^2.6: version "2.8.29"