Skip to content

Commit fccb514

Browse files
committed
[FEATURE] Switch to Terser for JavaScript minification
`uglify-es` is no longer maintained: mishoo/UglifyJS#3156 (comment) Terser is a maintained fork of uglify-es, which is used by most of the existing bundling tools.
1 parent ae0ef66 commit fccb514

File tree

6 files changed

+28
-29
lines changed

6 files changed

+28
-29
lines changed

lib/lbt/bundle/AutoSplitter.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"use strict";
22

3-
const uglify = require("uglify-es");
3+
const terser = require("terser");
44
const {pd} = require("pretty-data");
55

66
const ModuleName = require("../utils/ModuleName");
@@ -199,7 +199,7 @@ class AutoSplitter {
199199
let fileContent = await resource.buffer();
200200
if ( this.optimize ) {
201201
// console.log("uglify %s start", module);
202-
const result = uglify.minify({
202+
const result = terser.minify({
203203
[resource.name]: String(fileContent)
204204
}, {
205205
warnings: false, // TODO configure?

lib/lbt/bundle/Builder.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// for consistency of write calls, we generally allow template literals
33
"use strict";
44

5-
const uglify = require("uglify-es");
5+
const terser = require("terser");
66
const {pd} = require("pretty-data");
77
const esprima = require("esprima");
88
const escodegen = require("escodegen");
@@ -323,7 +323,7 @@ class BundleBuilder {
323323

324324
compressJS(fileContent, resource) {
325325
if ( this.optimize ) {
326-
const result = uglify.minify({
326+
const result = terser.minify({
327327
[resource.name]: String(fileContent)
328328
}, {
329329
warnings: false, // TODO configure?

lib/processors/uglifier.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const uglify = require("uglify-es");
1+
const terser = require("terser");
22
const copyrightCommentsPattern = /copyright|\(c\)(?:[0-9]+|\s+[0-9A-za-z])|released under|license|\u00a9/i;
33

44
/**
@@ -13,7 +13,7 @@ const copyrightCommentsPattern = /copyright|\(c\)(?:[0-9]+|\s+[0-9A-za-z])|relea
1313
module.exports = function({resources}) {
1414
return Promise.all(resources.map((resource) => {
1515
return resource.getString().then((code) => {
16-
const result = uglify.minify({
16+
const result = terser.minify({
1717
[resource.getPath()]: code
1818
}, {
1919
warnings: false,

package-lock.json

Lines changed: 18 additions & 19 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@
116116
"rimraf": "^2.6.3",
117117
"semver": "^6.3.0",
118118
"slash": "^3.0.0",
119-
"uglify-es": "^3.2.2",
119+
"terser": "^4.1.2",
120120
"xml2js": "^0.4.17",
121121
"yazl": "^2.5.1"
122122
},

test/lib/lbt/bundle/AutoSplitter.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const test = require("ava");
22
const sinon = require("sinon");
3-
const uglify = require("uglify-es");
3+
const terser = require("terser");
44
const {pd} = require("pretty-data");
55
const BundleResolver = require("../../../../lib/lbt/bundle/Resolver");
66
const AutoSplitter = require("../../../../lib/lbt/bundle/AutoSplitter");
@@ -178,7 +178,7 @@ test("_calcMinSize: js resource", async (t) => {
178178

179179

180180
test.serial("_calcMinSize: uglify js resource", async (t) => {
181-
const stubUglify = sinon.stub(uglify, "minify").returns({code: "123"});
181+
const stubTerser = sinon.stub(terser, "minify").returns({code: "123"});
182182
const pool = {
183183
findResourceWithInfo: function() {
184184
return {
@@ -194,7 +194,7 @@ test.serial("_calcMinSize: uglify js resource", async (t) => {
194194
const autpSplitter = new AutoSplitter(pool);
195195
autpSplitter.optimize = true;
196196
t.deepEqual(await autpSplitter._calcMinSize("mymodule.js"), 3);
197-
stubUglify.restore();
197+
stubTerser.restore();
198198
});
199199

200200
test("_calcMinSize: properties resource", async (t) => {

0 commit comments

Comments
 (0)