Keep the original class/function names when minifying code (issue 12209)

While this will obviously increase the size of the output of `gulp minified`/`gulp minified-es5` *slightly*, the resulting files are still a lot smaller than the non-minified builds.

See https://github.com/terser/terser#minify-options for information about various Terser options.
This commit is contained in:
Jonas Jenwald 2020-08-13 09:49:46 +02:00
parent e50cb4c9d5
commit ea5581b70a

View File

@ -909,18 +909,30 @@ function parseMinified(dir) {
console.log("### Minifying js files");
var Terser = require("terser");
// V8 chokes on very long sequences. Works around that.
var optsForHugeFile = { compress: { sequences: false } };
var options = {
compress: {
// V8 chokes on very long sequences, work around that.
sequences: false,
},
keep_classnames: true,
keep_fnames: true,
};
fs.writeFileSync(dir + "/web/pdf.viewer.js", Terser.minify(viewerFiles).code);
fs.writeFileSync(dir + "/build/pdf.min.js", Terser.minify(pdfFile).code);
fs.writeFileSync(
dir + "/web/pdf.viewer.js",
Terser.minify(viewerFiles, options).code
);
fs.writeFileSync(
dir + "/build/pdf.min.js",
Terser.minify(pdfFile, options).code
);
fs.writeFileSync(
dir + "/build/pdf.worker.min.js",
Terser.minify(pdfWorkerFile, optsForHugeFile).code
Terser.minify(pdfWorkerFile, options).code
);
fs.writeFileSync(
dir + "image_decoders/pdf.image_decoders.min.js",
Terser.minify(pdfImageDecodersFile).code
Terser.minify(pdfImageDecodersFile, options).code
);
console.log();