From 177c1eefab966dcdb1edbb873294ba3e5a5b3cac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Wed, 14 Mar 2018 22:37:41 +0100 Subject: [PATCH] Reworked external option slightly (default to all), removed undocumented inline option --- README.md | 2 +- package.json | 4 ++-- src/index.js | 14 +++++++++----- src/prog.js | 2 +- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index a5dbea6..a4d61f1 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ Just like `microbundle build`, but watches your source files and rebuilds on any -o, --output Directory to place build files into -f, --format Only build specified formats (default es,cjs,umd) --target Specify your target environment (default node) - --external Specify external dependencies, or 'all' + --external Specify external dependencies, or 'none' --compress Compress output using UglifyJS (default true) --strict Enforce undefined global context and add "use strict" --name Specify name exposed in UMD builds diff --git a/package.json b/package.json index 27b94af..a5f3cb4 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,8 @@ "bin": "dist/cli.js", "scripts": { "build": "npm run -s build:babel && npm run -s build:self", - "build:babel": "babel-node src/cli.js --external all --format cjs src/*.js --presets env", - "build:self": "node dist/cli.js --external all --format cjs src/*.js", + "build:babel": "babel-node src/cli.js --format cjs src/*.js --presets env", + "build:self": "node dist/cli.js --format cjs src/*.js", "prepare": "npm run -s build", "prepare:babel": "babel --presets env src/*.js -d dist && npm t", "lint": "eslint src", diff --git a/src/index.js b/src/index.js index de3a0bf..754c493 100644 --- a/src/index.js +++ b/src/index.js @@ -138,7 +138,6 @@ function createConfig(options, entry, format, writeMeta) { let { pkg } = options; let external = ['dns', 'fs', 'path', 'url'].concat( - Object.keys(pkg.peerDependencies || {}), options.entries.filter( e => e!==entry ) ); @@ -149,13 +148,18 @@ function createConfig(options, entry, format, writeMeta) { external.push('.'); } - let useNodeResolve = true; - if (options.inline === 'all') { + let useNodeResolve; + const peerDeps = Object.keys(pkg.peerDependencies || {}); + if (options.external==='none') { useNodeResolve = true; } - else if (options.external==='all' || options.inline==='none') { + else if (options.external) { + useNodeResolve = true; + external = external.concat(peerDeps).concat(options.external.split(',')); + } + else { useNodeResolve = false; - external = external.concat(Object.keys(pkg.dependencies || {})); + external = external.concat(peerDeps).concat(Object.keys(pkg.dependencies || {})); } let globals = external.reduce( (globals, name) => { diff --git a/src/prog.js b/src/prog.js index bda9930..6482fe7 100644 --- a/src/prog.js +++ b/src/prog.js @@ -18,7 +18,7 @@ export default handler => { .option('--output, -o', 'Directory to place build files into') .option('--format, -f', 'Only build specified formats', 'es,cjs,umd') .option('--target', 'Specify your target environment', 'node') - .option('--external', `Specify external dependencies, or 'all'`) + .option('--external', `Specify external dependencies, or 'none'`) .option('--compress', 'Compress output using UglifyJS', true) .option('--strict', 'Enforce undefined global context and add "use strict"') .option('--name', 'Specify name exposed in UMD builds')