diff --git a/package.json b/package.json index ade09b379..edf376204 100644 --- a/package.json +++ b/package.json @@ -34,8 +34,8 @@ "rewire": "^5.0.0", "sinon": "^9.2.2", "string-replace-webpack-plugin": "^0.1.3", + "terser-webpack-plugin": "4.2.3", "transform-loader": "^0.2.4", - "uglifyjs-webpack-plugin": "^2.2.0", "webpack": "^4.44.2" }, "engines": { diff --git a/webpack.config.js b/webpack.config.js index db1ae739f..522d0caf4 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,5 +1,5 @@ var path = require('path'); -var UglifyJsPlugin = require('uglifyjs-webpack-plugin'); +var TerserPlugin = require('terser-webpack-plugin'); var StringReplacePlugin = require("string-replace-webpack-plugin"); var webpack = require('webpack'); var pkg = require('./package.json'); @@ -101,26 +101,30 @@ module.exports = { }, optimization: { minimizer: [ - new UglifyJsPlugin({ + new TerserPlugin({ include: /\.min\.js$/, sourceMap: true, - uglifyOptions: { + extractComments: false, + terserOptions: { + format: { + preamble: banner, + comments: false, + }, + output: { + preamble: banner, + comments: false, + }, compress: { drop_console: true }, - mangle: { - reserved: ['HeadTable', 'NameTable', 'CmapTable', 'HheaTable', 'MaxpTable', 'HmtxTable', 'PostTable', 'OS2Table', 'LocaTable', 'GlyfTable'] - } + keep_classnames: true, + keep_fnames: true } }) ] }, plugins: [ - new StringReplacePlugin(), - new webpack.BannerPlugin({ - banner: banner, - raw: true - }) + new StringReplacePlugin() ], devtool: 'source-map' };