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"); console.log("### Minifying js files");
var Terser = require("terser"); var Terser = require("terser");
// V8 chokes on very long sequences. Works around that. var options = {
var optsForHugeFile = { compress: { sequences: false } }; 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(
fs.writeFileSync(dir + "/build/pdf.min.js", Terser.minify(pdfFile).code); dir + "/web/pdf.viewer.js",
Terser.minify(viewerFiles, options).code
);
fs.writeFileSync(
dir + "/build/pdf.min.js",
Terser.minify(pdfFile, options).code
);
fs.writeFileSync( fs.writeFileSync(
dir + "/build/pdf.worker.min.js", dir + "/build/pdf.worker.min.js",
Terser.minify(pdfWorkerFile, optsForHugeFile).code Terser.minify(pdfWorkerFile, options).code
); );
fs.writeFileSync( fs.writeFileSync(
dir + "image_decoders/pdf.image_decoders.min.js", dir + "image_decoders/pdf.image_decoders.min.js",
Terser.minify(pdfImageDecodersFile).code Terser.minify(pdfImageDecodersFile, options).code
); );
console.log(); console.log();