From 9f9672a5241dea10e2cbcc0626e0bb22405f01df Mon Sep 17 00:00:00 2001 From: Jason Miller Date: Sun, 3 Mar 2019 23:10:05 -0500 Subject: [PATCH] Add compressor options This allows specifying Terser options in mangle.json or package.json's "mangle" field. --- src/index.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/index.js b/src/index.js index 13bc4af1..2c244771 100644 --- a/src/index.js +++ b/src/index.js @@ -400,6 +400,9 @@ function createConfig(options, entry, format, writeMeta) { nameCache = JSON.parse( fs.readFileSync(resolve(options.cwd, 'mangle.json'), 'utf8'), ); + if (nameCache.config) { + mangleOptions = Object.assign({}, mangleOptions || {}, nameCache.config); + } } catch (e) {} } loadNameCache(); @@ -539,16 +542,16 @@ function createConfig(options, entry, format, writeMeta) { terser({ sourcemap: true, output: { comments: false }, - compress: { + compress: Object.assign({ keep_infinity: true, pure_getters: true, global_defs: defines, passes: 10, - }, + }, mangleOptions.compress || {}), warnings: true, ecma: 5, toplevel: format === 'cjs' || format === 'es', - mangle: { + mangle: Object.assign({ properties: mangleOptions ? { regex: mangleOptions.regex @@ -557,7 +560,7 @@ function createConfig(options, entry, format, writeMeta) { reserved: mangleOptions.reserved || [], } : false, - }, + }, mangleOptions.mangle || {}), nameCache, }), mangleOptions && {