From de870641daf549e2033a58a0a4c91c8e22804449 Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 13 Nov 2018 12:59:04 +0200 Subject: [PATCH 1/3] use rollup cjs fork --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2e73812a..52f6aee1 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "arg": "^2.0.0", "builtins": "^2.0.0", "rollup": "0.67.1", - "rollup-plugin-commonjs": "9.2.0", + "rollup-plugin-commonjs": "git+ssh://git@github.com/zeit/rollup-plugin-commonjs", "rollup-plugin-json": "^3.1.0", "rollup-plugin-node-resolve": "3.4.0", "rollup-plugin-terser": "^3.0.0" From b7ae533c3198735989c3010ab97edcab889a86bb Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 13 Nov 2018 14:34:52 +0200 Subject: [PATCH 2/3] reference merges branch --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 52f6aee1..3fac882f 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "arg": "^2.0.0", "builtins": "^2.0.0", "rollup": "0.67.1", - "rollup-plugin-commonjs": "git+ssh://git@github.com/zeit/rollup-plugin-commonjs", + "rollup-plugin-commonjs": "git+ssh://git@github.com/zeit/rollup-plugin-commonjs#merges", "rollup-plugin-json": "^3.1.0", "rollup-plugin-node-resolve": "3.4.0", "rollup-plugin-terser": "^3.0.0" From 2e07ba58a4c2398acaef240ce63dc6f6e94c47ae Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 13 Nov 2018 18:37:42 +0200 Subject: [PATCH 3/3] add isMissing hook --- index.js | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index d26c6372..3b027db8 100644 --- a/index.js +++ b/index.js @@ -1,14 +1,35 @@ const rollup = require("rollup"); -const resolve = require("rollup-plugin-node-resolve"); +const nodeResolve = require("rollup-plugin-node-resolve"); const commonjs = require("rollup-plugin-commonjs"); const json = require("rollup-plugin-json"); const { terser } = require("rollup-plugin-terser"); const builtins = require("builtins")(); module.exports = async (input, { minify = true } = {}) => { + const resolve = nodeResolve({ + module: false, + jsnext: false, + browser: false, + preferBuiltins: true, + }); const bundle = await rollup.rollup({ input, - plugins: [resolve(), commonjs(), json(), ...(minify ? [terser()] : null)], + plugins: [ + resolve, + commonjs({ + // simple optional dependencies detection + async isMissing (id, parentId) { + try { + if (builtins[id] || await resolve.resolveId(id, parentId)) + return false; + } + catch {} + return true; + } + }), + json(), + ...(minify ? [terser()] : null) + ], external: builtins });