diff --git a/bin/runBuble.js b/bin/runBuble.js index cb621e34..a93c0a93 100644 --- a/bin/runBuble.js +++ b/bin/runBuble.js @@ -1,6 +1,6 @@ var fs = require('fs'); var path = require('path'); -var buble = require('../dist/buble.deps.js'); +var buble = require('..'); var handleError = require('./handleError.js'); var EOL = require('os').EOL; diff --git a/package-lock.json b/package-lock.json index e117bcc9..fc87594f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,41 +5,33 @@ "requires": true, "dependencies": { "acorn": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.2.1.tgz", - "integrity": "sha512-jG0u7c4Ly+3QkkW18V+NRDN+4bWHdln30NL1ZL2AvFZZmQe/BfopYCtghCKKVBUSetZ4QKcyA0pY6/4Gw8Pv8w==" + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.4.1.tgz", + "integrity": "sha512-XLmq3H/BVvW6/GbxKryGxWORz1ebilSsUDlyC27bXhWGWAZWkGwS6FLHjOlwFXNFoWFQEO/Df4u0YYd0K3BQgQ==" }, "acorn-dynamic-import": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", "requires": { - "acorn": "5.2.1" + "acorn": "5.4.1" } }, "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "dev": true, + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.1.1.tgz", + "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", "requires": { - "acorn": "3.3.0" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - } + "acorn": "5.4.1" } }, "acorn5-object-spread": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/acorn5-object-spread/-/acorn5-object-spread-4.0.0.tgz", "integrity": "sha1-1XWAge7ZcSGrC+R+Mcqu8qo5lpc=", + "dev": true, "requires": { - "acorn": "5.2.1" + "acorn": "5.4.1" } }, "ajv": { @@ -196,83 +188,12 @@ "repeat-element": "1.1.2" } }, - "browser-resolve": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", - "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", - "dev": true, - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } - } - }, "browser-stdout": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=", "dev": true }, - "buble": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/buble/-/buble-0.8.2.tgz", - "integrity": "sha1-qsqgCrya8VWSdMV40vCXeyv0oaY=", - "dev": true, - "requires": { - "acorn": "3.3.0", - "chalk": "1.1.3", - "magic-string": "0.13.1", - "minimist": "1.2.0" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "magic-string": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.13.1.tgz", - "integrity": "sha1-QEuYyVFhmndKLJJXDA07HmZ3nj4=", - "dev": true, - "requires": { - "vlq": "0.2.3" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", @@ -519,8 +440,7 @@ "integrity": "sha512-sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ==", "dev": true, "requires": { - "acorn": "5.2.1", - "acorn-jsx": "3.0.1" + "acorn": "5.4.1" } }, "esprima": { @@ -555,9 +475,9 @@ "dev": true }, "estree-walker": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.2.1.tgz", - "integrity": "sha1-va/oCVOD2EFNXcLs9MkXO225QS4=", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.3.1.tgz", + "integrity": "sha1-5rGlHPcpJSTnI3wxLl/mZgwc4ao=", "dev": true }, "esutils": { @@ -1070,10 +990,7 @@ "magic-string": { "version": "0.22.4", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.4.tgz", - "integrity": "sha512-kxBL06p6iO2qPBHsqGK2b3cRwiRGpnmSuVWNhwHcMX7qJOUr1HvricYP1LZOCdkQBUp0jiWg2d6WJwR3vYgByw==", - "requires": { - "vlq": "0.2.3" - } + "integrity": "sha512-kxBL06p6iO2qPBHsqGK2b3cRwiRGpnmSuVWNhwHcMX7qJOUr1HvricYP1LZOCdkQBUp0jiWg2d6WJwR3vYgByw==" }, "micromatch": { "version": "2.3.11", @@ -1134,9 +1051,9 @@ } }, "mocha": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.0.1.tgz", - "integrity": "sha512-evDmhkoA+cBNiQQQdSKZa2b9+W2mpLoj50367lhy+Klnx9OV8XlCIhigUnn1gaTFLQCa0kdNhEGDr0hCXOQFDw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.0.0.tgz", + "integrity": "sha512-ukB2dF+u4aeJjc6IGtPNnJXfeby5d4ZqySlIBT0OEyva/DrMjVm5HkQxKnHDLKEfEQBsEnwTg9HHhtPHJdTd8w==", "dev": true, "requires": { "browser-stdout": "1.3.0", @@ -1507,19 +1424,35 @@ } }, "rollup": { - "version": "0.51.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.51.3.tgz", - "integrity": "sha512-K9oygeFN+DhZTyWxAu0S/6cYMKSE9F2YXjXItwzBf8lRBRFRiQLurXkeUbqE+LCxvMtauiMFMApPb8YNyHT0Vw==", + "version": "0.55.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.55.3.tgz", + "integrity": "sha512-2TgimJ7pk+XfPT0DmAcOqq9qdXlJ04qKyzyLm1WvPS/E6XdXEXyG5u6L8AsjxOaKoEBlYGliPzo99jxwhn2NYQ==", "dev": true }, "rollup-plugin-buble": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-buble/-/rollup-plugin-buble-0.8.0.tgz", - "integrity": "sha1-TgLudzKWRnqGMaYa3w86to5ZITI=", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-buble/-/rollup-plugin-buble-0.18.0.tgz", + "integrity": "sha512-rd3JG2MxvQXfg5coCw0IyZV8QrsceVI4zfJgGVgkUnntwp+gnjv7TsKWGKGoLNMGAMRKQlhcsSyvUuvOL+vNHw==", "dev": true, "requires": { - "buble": "0.8.2", - "rollup-pluginutils": "1.5.2" + "buble": "0.18.0", + "rollup-pluginutils": "2.0.1" + }, + "dependencies": { + "buble": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/buble/-/buble-0.18.0.tgz", + "integrity": "sha512-U3NJxUiSz0H1EB54PEHAuBTxdXgQH4DaQkvkINFXf9kEKCDWSn67EgQfFKbkTzsok4xRrIPsoxWDl2czCHR65g==", + "dev": true, + "requires": { + "acorn": "5.4.1", + "acorn5-object-spread": "4.0.0", + "chalk": "2.3.0", + "magic-string": "0.22.4", + "minimist": "1.2.0", + "os-homedir": "1.0.2" + } + } } }, "rollup-plugin-commonjs": { @@ -1528,36 +1461,18 @@ "integrity": "sha512-qK0+uhktmnAgZkHkqFuajNmPw93fjrO7+CysDaxWE5jrUR9XSlSvuao5ZJP+XizxA8weakhgYYBtbVz9SGBpjA==", "dev": true, "requires": { - "acorn": "5.2.1", - "estree-walker": "0.5.0", + "acorn": "5.4.1", + "estree-walker": "0.5.1", "magic-string": "0.22.4", "resolve": "1.5.0", "rollup-pluginutils": "2.0.1" }, "dependencies": { "estree-walker": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.0.tgz", - "integrity": "sha512-/bEAy+yKAZQrEWUhGmS3H9XpGqSDBtRzX0I2PgMw9kA2n1jN22uV5B5p7MFdZdvWdXCRJztXAfx6ZeRfgkEETg==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.1.tgz", + "integrity": "sha512-7HgCgz1axW7w5aOvgOQkoR1RMBkllygJrssU3BvymKQ95lxXYv6Pon17fBRDm9qhkvXZGijOULoSF9ShOk/ZLg==", "dev": true - }, - "rollup-pluginutils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz", - "integrity": "sha1-fslbNXP2VDpGpkYb2afFRFJdD8A=", - "dev": true, - "requires": { - "estree-walker": "0.3.1", - "micromatch": "2.3.11" - }, - "dependencies": { - "estree-walker": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.3.1.tgz", - "integrity": "sha1-5rGlHPcpJSTnI3wxLl/mZgwc4ao=", - "dev": true - } - } } } }, @@ -1568,46 +1483,27 @@ "dev": true, "requires": { "rollup-pluginutils": "2.0.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.3.1.tgz", - "integrity": "sha1-5rGlHPcpJSTnI3wxLl/mZgwc4ao=", - "dev": true - }, - "rollup-pluginutils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz", - "integrity": "sha1-fslbNXP2VDpGpkYb2afFRFJdD8A=", - "dev": true, - "requires": { - "estree-walker": "0.3.1", - "micromatch": "2.3.11" - } - } } }, "rollup-plugin-node-resolve": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.0.0.tgz", - "integrity": "sha1-i4l8TDAw1QASd7BRSyXSygloPuA=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.0.2.tgz", + "integrity": "sha512-ZwmMip/yqw6cmDQJuCQJ1G7gw2z11iGUtQNFYrFZHmqadRHU+OZGC3nOXwXu+UTvcm5lzDspB1EYWrkTgPWybw==", "dev": true, "requires": { - "browser-resolve": "1.11.2", "builtin-modules": "1.1.1", "is-module": "1.0.0", "resolve": "1.5.0" } }, "rollup-pluginutils": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz", - "integrity": "sha1-HhVud4+UtyVb+hs9AXi+j1xVJAg=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz", + "integrity": "sha1-fslbNXP2VDpGpkYb2afFRFJdD8A=", "dev": true, "requires": { - "estree-walker": "0.2.1", - "minimatch": "3.0.4" + "estree-walker": "0.3.1", + "micromatch": "2.3.11" } }, "run-async": { @@ -1847,9 +1743,9 @@ "dev": true }, "vlq": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", - "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.0.tgz", + "integrity": "sha512-o3WmXySo+oI5thgqr7Qy8uBkT/v9Zr+sRyrh1lr8aWPUkgDWdWt4Nae2WKBrLsocgE8BuWWD0jLc+VW8LeU+2g==" }, "which": { "version": "1.3.0", diff --git a/package.json b/package.json index 254249f3..7f0afa2d 100644 --- a/package.json +++ b/package.json @@ -2,9 +2,13 @@ "name": "buble", "version": "0.18.0", "description": "The blazing fast, batteries-included ES2015 compiler", - "main": "dist/buble.umd.js", + "main": "dist/buble.cjs.js", "module": "dist/buble.es.js", - "browser": "dist/buble.deps.js", + "browser": { + "dist/buble.cjs.js": "dist/buble-browser.cjs.js", + "dist/buble.es.js": "dist/buble-browser.es.js" + }, + "unpkg": "dist/buble-browser-deps.umd.js", "files": [ "bin", "src", @@ -51,9 +55,9 @@ "rimraf": "^2.5.2", "rollup": "^0.55.3", "rollup-plugin-buble": "^0.18.0", - "rollup-plugin-commonjs": "^8.2.1", - "rollup-plugin-json": "^2.0.0", - "rollup-plugin-node-resolve": "^3.0.0", + "rollup-plugin-commonjs": "^8.2.6", + "rollup-plugin-json": "^2.3.0", + "rollup-plugin-node-resolve": "^3.0.2", "source-map": "^0.6.1", "source-map-support": "^0.5.0" }, diff --git a/rollup.config.js b/rollup.config.js index 2679e47a..b75ad6e2 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -4,48 +4,62 @@ import resolve from 'rollup-plugin-node-resolve'; import commonjs from 'rollup-plugin-commonjs'; import pkg from './package.json'; -const config = { - input: 'src/index.js', - plugins: [ - json(), - commonjs(), - buble({ - target: { - node: 4 - }, - include: [ - 'src/**', - 'node_modules/acorn-object-spread/**', - 'node_modules/unicode-loose-match/**', - 'node_modules/regexpu-core/**' - ], - transforms: { - dangerousForOf: true - } - }), - resolve() - ] -}; +const ensureArray = maybeArr => Array.isArray(maybeArr) ? maybeArr : [maybeArr]; + +const createConfig = (opts) => { + opts = opts || {}; + const browser = opts.browser || false; + const external = opts.external || ['acorn', 'magic-string']; + const output = ensureArray(opts.output); -const globals = { - 'acorn/dist/acorn.js': 'acorn', - 'magic-string': 'MagicString' + return { + input: 'src/index.js', + output: output.map(format => Object.assign({}, format, { + name: 'buble', + sourcemap: true + })), + external: external, + plugins: [ + json(), + commonjs(), + buble({ + target: !browser ? { node: 4 } : null, + include: [ + 'src/**', + 'node_modules/unicode-loose-match/**', + 'node_modules/regexpu-core/**' + ], + transforms: { + dangerousForOf: true + } + }), + resolve() + ], + }; }; -export default [ - /* ESM/UMD builds */ - Object.assign({}, config, { - external: ['acorn/dist/acorn.js', 'magic-string'], +const configs = [ + /* node ESM/CJS builds */ + createConfig({ output: [ - { format: 'es', file: pkg.module, globals, sourcemap: true, name: 'buble' }, - { format: 'umd', file: pkg.main, globals, sourcemap: true, name: 'buble' } - ] + { format: 'es', file: pkg.module }, + { format: 'cjs', file: pkg.main } + ], }), - - /* UMD with bundled dependencies, for browsers */ - Object.assign({}, config, { + /* browser ESM/CJS builds (for bundlers) */ + createConfig({ + browser: true, output: [ - { format: 'umd', file: pkg.browser, sourcemap: true, name: 'buble' } - ] - }) + { format: 'es', file: pkg.browser[pkg.module] }, + { format: 'cjs', file: pkg.browser[pkg.main] } + ], + }), + /* UMD with bundled dependencies, ready for browsers */ + createConfig({ + browser: true, + external: [], + output: { format: 'umd', file: pkg.unpkg }, + }), ]; + +export default configs; diff --git a/test/test.js b/test/test.js index 0d1c83bb..c1000616 100644 --- a/test/test.js +++ b/test/test.js @@ -6,7 +6,7 @@ var assert = require('assert'); var glob = require('glob'); var SourceMapConsumer = require('source-map').SourceMapConsumer; var getLocation = require('./utils/getLocation.js'); -var buble = require('../dist/buble.umd.js'); +var buble = require('..'); require('source-map-support').install(); require('console-group').install();