From 6bfb38018b8316b748fc14781c5e251df0800ed9 Mon Sep 17 00:00:00 2001 From: Andre Wiggins Date: Mon, 24 Jun 2019 12:45:06 -0700 Subject: [PATCH 1/6] Update css fixture --- test/__snapshots__/index.test.js.snap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/__snapshots__/index.test.js.snap b/test/__snapshots__/index.test.js.snap index fb2fadb..cbc6ce2 100644 --- a/test/__snapshots__/index.test.js.snap +++ b/test/__snapshots__/index.test.js.snap @@ -423,7 +423,7 @@ Build \\"basicCss\\" to dist: exports[`fixtures build basic-css with microbundle 2`] = `7`; -exports[`fixtures build basic-css with microbundle 3`] = `".testing{display:flex;color:red;background:#00f}"`; +exports[`fixtures build basic-css with microbundle 3`] = `".testing{display:-webkit-box;display:flex;color:red;background:#00f}"`; exports[`fixtures build basic-css with microbundle 4`] = ` "module.exports=function(){var e=document.createElement(\\"div\\");return e.className=\\"testing\\",e}; From 6f975813415ab5d893ede0861cfae014a8f8d2ab Mon Sep 17 00:00:00 2001 From: Andre Wiggins Date: Mon, 24 Jun 2019 12:55:06 -0700 Subject: [PATCH 2/6] Add minify config test --- test/__snapshots__/index.test.js.snap | 48 ++++++++++++++++++++++++ test/fixtures/minify-config/package.json | 10 +++++ test/fixtures/minify-config/src/index.js | 7 ++++ test/fixtures/minify-config/src/two.js | 4 ++ 4 files changed, 69 insertions(+) create mode 100644 test/fixtures/minify-config/package.json create mode 100644 test/fixtures/minify-config/src/index.js create mode 100644 test/fixtures/minify-config/src/two.js diff --git a/test/__snapshots__/index.test.js.snap b/test/__snapshots__/index.test.js.snap index cbc6ce2..ef9085e 100644 --- a/test/__snapshots__/index.test.js.snap +++ b/test/__snapshots__/index.test.js.snap @@ -1374,6 +1374,54 @@ exports[`fixtures build macro with microbundle 5`] = ` " `; +exports[`fixtures build minify-config with microbundle 1`] = ` +"Used script: microbundle + +Directory tree: + +minify-config + dist + minify-config.js + minify-config.js.map + minify-config.mjs + minify-config.mjs.map + minify-config.umd.js + minify-config.umd.js.map + package.json + src + index.js + two.js + + +Build \\"minifyConfig\\" to dist: +99 B: minify-config.js.gz +85 B: minify-config.js.br +99 B: minify-config.mjs.gz +88 B: minify-config.mjs.br +190 B: minify-config.umd.js.gz +144 B: minify-config.umd.js.br" +`; + +exports[`fixtures build minify-config with microbundle 2`] = `6`; + +exports[`fixtures build minify-config with microbundle 3`] = ` +"var o={prop1:1,o:2};module.exports=function(){return console.log(o.prop1),console.log(o.o),o}; +//# sourceMappingURL=minify-config.js.map +" +`; + +exports[`fixtures build minify-config with microbundle 4`] = ` +"var o={prop1:1,o:2};export default function(){return console.log(o.prop1),console.log(o.o),o} +//# sourceMappingURL=minify-config.mjs.map +" +`; + +exports[`fixtures build minify-config with microbundle 5`] = ` +"!function(e,n){\\"object\\"==typeof exports&&\\"undefined\\"!=typeof module?module.exports=n():\\"function\\"==typeof define&&define.amd?define(n):(e=e||self).minifyConfig=n()}(this,function(){var e={prop1:1,o:2};return function(){return console.log(e.prop1),console.log(e.o),e}}); +//# sourceMappingURL=minify-config.umd.js.map +" +`; + exports[`fixtures build modern with microbundle 1`] = ` "Used script: microbundle -f modern diff --git a/test/fixtures/minify-config/package.json b/test/fixtures/minify-config/package.json new file mode 100644 index 0000000..086b2ca --- /dev/null +++ b/test/fixtures/minify-config/package.json @@ -0,0 +1,10 @@ +{ + "name": "minify-config", + "minify": { + "mangle": { + "properties": { + "regex": "^_" + } + } + } +} diff --git a/test/fixtures/minify-config/src/index.js b/test/fixtures/minify-config/src/index.js new file mode 100644 index 0000000..8d0f552 --- /dev/null +++ b/test/fixtures/minify-config/src/index.js @@ -0,0 +1,7 @@ +import { two } from './two'; + +export default function() { + console.log(two.prop1); + console.log(two._prop2); + return two; +} diff --git a/test/fixtures/minify-config/src/two.js b/test/fixtures/minify-config/src/two.js new file mode 100644 index 0000000..9dc4e37 --- /dev/null +++ b/test/fixtures/minify-config/src/two.js @@ -0,0 +1,4 @@ +export const two = { + prop1: 1, + _prop2: 2, +}; From 5dc8cfbcdc608053e870f9e9762f53e65f755ec8 Mon Sep 17 00:00:00 2001 From: Andre Wiggins Date: Mon, 24 Jun 2019 13:00:33 -0700 Subject: [PATCH 3/6] Add mangle.json test --- test/__snapshots__/index.test.js.snap | 49 +++++++++++++++++++++ test/fixtures/mangle-json-file/mangle.json | 15 +++++++ test/fixtures/mangle-json-file/package.json | 3 ++ test/fixtures/mangle-json-file/src/index.js | 7 +++ test/fixtures/mangle-json-file/src/two.js | 4 ++ 5 files changed, 78 insertions(+) create mode 100644 test/fixtures/mangle-json-file/mangle.json create mode 100644 test/fixtures/mangle-json-file/package.json create mode 100644 test/fixtures/mangle-json-file/src/index.js create mode 100644 test/fixtures/mangle-json-file/src/two.js diff --git a/test/__snapshots__/index.test.js.snap b/test/__snapshots__/index.test.js.snap index ef9085e..c119a2f 100644 --- a/test/__snapshots__/index.test.js.snap +++ b/test/__snapshots__/index.test.js.snap @@ -1374,6 +1374,55 @@ exports[`fixtures build macro with microbundle 5`] = ` " `; +exports[`fixtures build mangle-json-file with microbundle 1`] = ` +"Used script: microbundle + +Directory tree: + +mangle-json-file + dist + mangle-json-file.js + mangle-json-file.js.map + mangle-json-file.mjs + mangle-json-file.mjs.map + mangle-json-file.umd.js + mangle-json-file.umd.js.map + mangle.json + package.json + src + index.js + two.js + + +Build \\"mangleJsonFile\\" to dist: +103 B: mangle-json-file.js.gz +89 B: mangle-json-file.js.br +103 B: mangle-json-file.mjs.gz +95 B: mangle-json-file.mjs.br +198 B: mangle-json-file.umd.js.gz +164 B: mangle-json-file.umd.js.br" +`; + +exports[`fixtures build mangle-json-file with microbundle 2`] = `6`; + +exports[`fixtures build mangle-json-file with microbundle 3`] = ` +"var o={prop1:1,__p2:2};module.exports=function(){return console.log(o.prop1),console.log(o.__p2),o}; +//# sourceMappingURL=mangle-json-file.js.map +" +`; + +exports[`fixtures build mangle-json-file with microbundle 4`] = ` +"var o={prop1:1,__p2:2};export default function(){return console.log(o.prop1),console.log(o.__p2),o} +//# sourceMappingURL=mangle-json-file.mjs.map +" +`; + +exports[`fixtures build mangle-json-file with microbundle 5`] = ` +"!function(e,n){\\"object\\"==typeof exports&&\\"undefined\\"!=typeof module?module.exports=n():\\"function\\"==typeof define&&define.amd?define(n):(e=e||self).mangleJsonFile=n()}(this,function(){var e={prop1:1,__p2:2};return function(){return console.log(e.prop1),console.log(e.__p2),e}}); +//# sourceMappingURL=mangle-json-file.umd.js.map +" +`; + exports[`fixtures build minify-config with microbundle 1`] = ` "Used script: microbundle diff --git a/test/fixtures/mangle-json-file/mangle.json b/test/fixtures/mangle-json-file/mangle.json new file mode 100644 index 0000000..f95de54 --- /dev/null +++ b/test/fixtures/mangle-json-file/mangle.json @@ -0,0 +1,15 @@ +{ + "minify": { + "mangle": { + "properties": { + "regex": "^_" + } + } + }, + "props": { + "cname": 6, + "props": { + "$_prop2": "__p2" + } + } +} \ No newline at end of file diff --git a/test/fixtures/mangle-json-file/package.json b/test/fixtures/mangle-json-file/package.json new file mode 100644 index 0000000..b7b41ba --- /dev/null +++ b/test/fixtures/mangle-json-file/package.json @@ -0,0 +1,3 @@ +{ + "name": "mangle-json-file" +} diff --git a/test/fixtures/mangle-json-file/src/index.js b/test/fixtures/mangle-json-file/src/index.js new file mode 100644 index 0000000..8d0f552 --- /dev/null +++ b/test/fixtures/mangle-json-file/src/index.js @@ -0,0 +1,7 @@ +import { two } from './two'; + +export default function() { + console.log(two.prop1); + console.log(two._prop2); + return two; +} diff --git a/test/fixtures/mangle-json-file/src/two.js b/test/fixtures/mangle-json-file/src/two.js new file mode 100644 index 0000000..9dc4e37 --- /dev/null +++ b/test/fixtures/mangle-json-file/src/two.js @@ -0,0 +1,4 @@ +export const two = { + prop1: 1, + _prop2: 2, +}; From 1d3f8ec1ed65b690bd31fbf311fa311879c9daae Mon Sep 17 00:00:00 2001 From: Andre Wiggins Date: Mon, 24 Jun 2019 13:55:37 -0700 Subject: [PATCH 4/6] Add support for minify file path --- src/index.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/index.js b/src/index.js index 764e1cd..41980b1 100644 --- a/src/index.js +++ b/src/index.js @@ -439,7 +439,12 @@ function createConfig(options, entry, format, writeMeta) { let nameCache = {}; const bareNameCache = nameCache; // Support "minify" field and legacy "mangle" field via package.json: - let minifyOptions = options.pkg.minify || options.pkg.mangle || {}; + const rawMinifyValue = options.pkg.minify || options.pkg.mangle || {}; + let minifyOptions = typeof rawMinifyValue === 'string' ? {} : rawMinifyValue; + const getNameCachePath = + typeof rawMinifyValue === 'string' + ? () => resolve(options.cwd, rawMinifyValue) + : () => resolve(options.cwd, 'mangle.json'); const useTypescript = extname(entry) === '.ts' || extname(entry) === '.tsx'; @@ -449,9 +454,7 @@ function createConfig(options, entry, format, writeMeta) { function loadNameCache() { try { - nameCache = JSON.parse( - fs.readFileSync(resolve(options.cwd, 'mangle.json'), 'utf8'), - ); + nameCache = JSON.parse(fs.readFileSync(getNameCachePath(), 'utf8')); // mangle.json can contain a "minify" field, same format as the pkg.mangle: if (nameCache.minify) { minifyOptions = Object.assign( @@ -593,7 +596,7 @@ function createConfig(options, entry, format, writeMeta) { writeBundle() { if (writeMeta && nameCache) { fs.writeFile( - resolve(options.cwd, 'mangle.json'), + getNameCachePath(), JSON.stringify(nameCache, null, 2), ); } From 7065c70ab5dc52302e3f462a9a35d6105406da56 Mon Sep 17 00:00:00 2001 From: Andre Wiggins Date: Mon, 24 Jun 2019 13:55:52 -0700 Subject: [PATCH 5/6] Add minify path test --- test/__snapshots__/index.test.js.snap | 49 +++++++++++++++++++ test/fixtures/minify-path-config/minify.json | 15 ++++++ test/fixtures/minify-path-config/package.json | 4 ++ test/fixtures/minify-path-config/src/index.js | 7 +++ test/fixtures/minify-path-config/src/two.js | 4 ++ 5 files changed, 79 insertions(+) create mode 100644 test/fixtures/minify-path-config/minify.json create mode 100644 test/fixtures/minify-path-config/package.json create mode 100644 test/fixtures/minify-path-config/src/index.js create mode 100644 test/fixtures/minify-path-config/src/two.js diff --git a/test/__snapshots__/index.test.js.snap b/test/__snapshots__/index.test.js.snap index c119a2f..c2062a1 100644 --- a/test/__snapshots__/index.test.js.snap +++ b/test/__snapshots__/index.test.js.snap @@ -1471,6 +1471,55 @@ exports[`fixtures build minify-config with microbundle 5`] = ` " `; +exports[`fixtures build minify-path-config with microbundle 1`] = ` +"Used script: microbundle + +Directory tree: + +minify-path-config + dist + minify-path-config.js + minify-path-config.js.map + minify-path-config.mjs + minify-path-config.mjs.map + minify-path-config.umd.js + minify-path-config.umd.js.map + minify.json + package.json + src + index.js + two.js + + +Build \\"minifyPathConfig\\" to dist: +103 B: minify-path-config.js.gz +89 B: minify-path-config.js.br +103 B: minify-path-config.mjs.gz +95 B: minify-path-config.mjs.br +200 B: minify-path-config.umd.js.gz +155 B: minify-path-config.umd.js.br" +`; + +exports[`fixtures build minify-path-config with microbundle 2`] = `6`; + +exports[`fixtures build minify-path-config with microbundle 3`] = ` +"var o={prop1:1,__p2:2};module.exports=function(){return console.log(o.prop1),console.log(o.__p2),o}; +//# sourceMappingURL=minify-path-config.js.map +" +`; + +exports[`fixtures build minify-path-config with microbundle 4`] = ` +"var o={prop1:1,__p2:2};export default function(){return console.log(o.prop1),console.log(o.__p2),o} +//# sourceMappingURL=minify-path-config.mjs.map +" +`; + +exports[`fixtures build minify-path-config with microbundle 5`] = ` +"!function(e,n){\\"object\\"==typeof exports&&\\"undefined\\"!=typeof module?module.exports=n():\\"function\\"==typeof define&&define.amd?define(n):(e=e||self).minifyPathConfig=n()}(this,function(){var e={prop1:1,__p2:2};return function(){return console.log(e.prop1),console.log(e.__p2),e}}); +//# sourceMappingURL=minify-path-config.umd.js.map +" +`; + exports[`fixtures build modern with microbundle 1`] = ` "Used script: microbundle -f modern diff --git a/test/fixtures/minify-path-config/minify.json b/test/fixtures/minify-path-config/minify.json new file mode 100644 index 0000000..f95de54 --- /dev/null +++ b/test/fixtures/minify-path-config/minify.json @@ -0,0 +1,15 @@ +{ + "minify": { + "mangle": { + "properties": { + "regex": "^_" + } + } + }, + "props": { + "cname": 6, + "props": { + "$_prop2": "__p2" + } + } +} \ No newline at end of file diff --git a/test/fixtures/minify-path-config/package.json b/test/fixtures/minify-path-config/package.json new file mode 100644 index 0000000..31bcea3 --- /dev/null +++ b/test/fixtures/minify-path-config/package.json @@ -0,0 +1,4 @@ +{ + "name": "minify-path-config", + "minify": "./minify.json" +} diff --git a/test/fixtures/minify-path-config/src/index.js b/test/fixtures/minify-path-config/src/index.js new file mode 100644 index 0000000..8d0f552 --- /dev/null +++ b/test/fixtures/minify-path-config/src/index.js @@ -0,0 +1,7 @@ +import { two } from './two'; + +export default function() { + console.log(two.prop1); + console.log(two._prop2); + return two; +} diff --git a/test/fixtures/minify-path-config/src/two.js b/test/fixtures/minify-path-config/src/two.js new file mode 100644 index 0000000..9dc4e37 --- /dev/null +++ b/test/fixtures/minify-path-config/src/two.js @@ -0,0 +1,4 @@ +export const two = { + prop1: 1, + _prop2: 2, +}; From 8ab55c511acc4cdb45f40b819246cb1a0435c595 Mon Sep 17 00:00:00 2001 From: Andre Wiggins Date: Mon, 24 Jun 2019 14:24:09 -0700 Subject: [PATCH 6/6] Add test for minify path outside of cwd --- test/__snapshots__/index.test.js.snap | 47 +++++++++++++++++++ .../minify-path-parent-dir/index.js | 7 +++ .../minify-path-parent-dir/package.json | 4 ++ .../minify-path-parent-dir/two.js | 4 ++ .../minify.json | 15 ++++++ .../package.json | 6 +++ 6 files changed, 83 insertions(+) create mode 100644 test/fixtures/minify-path-parent-dir-with-cwd/minify-path-parent-dir/index.js create mode 100644 test/fixtures/minify-path-parent-dir-with-cwd/minify-path-parent-dir/package.json create mode 100644 test/fixtures/minify-path-parent-dir-with-cwd/minify-path-parent-dir/two.js create mode 100644 test/fixtures/minify-path-parent-dir-with-cwd/minify.json create mode 100644 test/fixtures/minify-path-parent-dir-with-cwd/package.json diff --git a/test/__snapshots__/index.test.js.snap b/test/__snapshots__/index.test.js.snap index c2062a1..073a593 100644 --- a/test/__snapshots__/index.test.js.snap +++ b/test/__snapshots__/index.test.js.snap @@ -1520,6 +1520,53 @@ exports[`fixtures build minify-path-config with microbundle 5`] = ` " `; +exports[`fixtures build minify-path-parent-dir-with-cwd with microbundle 1`] = ` +"Used script: microbundle + +Directory tree: + +minify-path-parent-dir + dist + minify-path-parent-dir.js + minify-path-parent-dir.js.map + minify-path-parent-dir.mjs + minify-path-parent-dir.mjs.map + minify-path-parent-dir.umd.js + minify-path-parent-dir.umd.js.map + index.js + package.json + two.js + + +Build \\"minifyPathParentDir\\" to dist: +103 B: minify-path-parent-dir.js.gz +89 B: minify-path-parent-dir.js.br +103 B: minify-path-parent-dir.mjs.gz +95 B: minify-path-parent-dir.mjs.br +202 B: minify-path-parent-dir.umd.js.gz +169 B: minify-path-parent-dir.umd.js.br" +`; + +exports[`fixtures build minify-path-parent-dir-with-cwd with microbundle 2`] = `6`; + +exports[`fixtures build minify-path-parent-dir-with-cwd with microbundle 3`] = ` +"var o={prop1:1,__p2:2};module.exports=function(){return console.log(o.prop1),console.log(o.__p2),o}; +//# sourceMappingURL=minify-path-parent-dir.js.map +" +`; + +exports[`fixtures build minify-path-parent-dir-with-cwd with microbundle 4`] = ` +"var o={prop1:1,__p2:2};export default function(){return console.log(o.prop1),console.log(o.__p2),o} +//# sourceMappingURL=minify-path-parent-dir.mjs.map +" +`; + +exports[`fixtures build minify-path-parent-dir-with-cwd with microbundle 5`] = ` +"!function(e,n){\\"object\\"==typeof exports&&\\"undefined\\"!=typeof module?module.exports=n():\\"function\\"==typeof define&&define.amd?define(n):(e=e||self).minifyPathParentDir=n()}(this,function(){var e={prop1:1,__p2:2};return function(){return console.log(e.prop1),console.log(e.__p2),e}}); +//# sourceMappingURL=minify-path-parent-dir.umd.js.map +" +`; + exports[`fixtures build modern with microbundle 1`] = ` "Used script: microbundle -f modern diff --git a/test/fixtures/minify-path-parent-dir-with-cwd/minify-path-parent-dir/index.js b/test/fixtures/minify-path-parent-dir-with-cwd/minify-path-parent-dir/index.js new file mode 100644 index 0000000..8d0f552 --- /dev/null +++ b/test/fixtures/minify-path-parent-dir-with-cwd/minify-path-parent-dir/index.js @@ -0,0 +1,7 @@ +import { two } from './two'; + +export default function() { + console.log(two.prop1); + console.log(two._prop2); + return two; +} diff --git a/test/fixtures/minify-path-parent-dir-with-cwd/minify-path-parent-dir/package.json b/test/fixtures/minify-path-parent-dir-with-cwd/minify-path-parent-dir/package.json new file mode 100644 index 0000000..304d241 --- /dev/null +++ b/test/fixtures/minify-path-parent-dir-with-cwd/minify-path-parent-dir/package.json @@ -0,0 +1,4 @@ +{ + "name": "minify-path-parent-dir", + "minify": "../minify.json" +} diff --git a/test/fixtures/minify-path-parent-dir-with-cwd/minify-path-parent-dir/two.js b/test/fixtures/minify-path-parent-dir-with-cwd/minify-path-parent-dir/two.js new file mode 100644 index 0000000..9dc4e37 --- /dev/null +++ b/test/fixtures/minify-path-parent-dir-with-cwd/minify-path-parent-dir/two.js @@ -0,0 +1,4 @@ +export const two = { + prop1: 1, + _prop2: 2, +}; diff --git a/test/fixtures/minify-path-parent-dir-with-cwd/minify.json b/test/fixtures/minify-path-parent-dir-with-cwd/minify.json new file mode 100644 index 0000000..f95de54 --- /dev/null +++ b/test/fixtures/minify-path-parent-dir-with-cwd/minify.json @@ -0,0 +1,15 @@ +{ + "minify": { + "mangle": { + "properties": { + "regex": "^_" + } + } + }, + "props": { + "cname": 6, + "props": { + "$_prop2": "__p2" + } + } +} \ No newline at end of file diff --git a/test/fixtures/minify-path-parent-dir-with-cwd/package.json b/test/fixtures/minify-path-parent-dir-with-cwd/package.json new file mode 100644 index 0000000..5a4e94c --- /dev/null +++ b/test/fixtures/minify-path-parent-dir-with-cwd/package.json @@ -0,0 +1,6 @@ +{ + "name": "minify-path-parent-dir-with-cwd", + "scripts": { + "build": "microbundle --cwd ./minify-path-parent-dir" + } +}