From 7567769ed5f3bd0b5c9ea9b1da7cf07e1c31952a Mon Sep 17 00:00:00 2001 From: DeMoorJasper Date: Sun, 9 Dec 2018 11:39:00 +0100 Subject: [PATCH] don't process external imports --- .../src/visitors/dependencies.js | 2 ++ .../integration/dynamic-external/index.js | 5 +++++ .../core/parcel-bundler/test/javascript.js | 19 +++++++++++++++++++ 3 files changed, 26 insertions(+) create mode 100644 packages/core/parcel-bundler/test/integration/dynamic-external/index.js diff --git a/packages/core/parcel-bundler/src/visitors/dependencies.js b/packages/core/parcel-bundler/src/visitors/dependencies.js index cfe5726ff51..0c87fe09735 100644 --- a/packages/core/parcel-bundler/src/visitors/dependencies.js +++ b/packages/core/parcel-bundler/src/visitors/dependencies.js @@ -54,6 +54,8 @@ module.exports = { types.isStringLiteral(args[0]); if (isDynamicImport) { + if (isURL(args[0].value)) return; + asset.addDependency('_bundle_loader'); addDependency(asset, args[0], {dynamic: true}); diff --git a/packages/core/parcel-bundler/test/integration/dynamic-external/index.js b/packages/core/parcel-bundler/test/integration/dynamic-external/index.js new file mode 100644 index 00000000000..ab2ee972c5d --- /dev/null +++ b/packages/core/parcel-bundler/test/integration/dynamic-external/index.js @@ -0,0 +1,5 @@ +const lodash = import('https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js'); + +export default function () { + return lodash.then(() => _); +}; diff --git a/packages/core/parcel-bundler/test/javascript.js b/packages/core/parcel-bundler/test/javascript.js index afb7605b934..a0474f8212e 100644 --- a/packages/core/parcel-bundler/test/javascript.js +++ b/packages/core/parcel-bundler/test/javascript.js @@ -342,6 +342,25 @@ describe('javascript', function() { assert.equal(await output(), 3); }); + it('Should not run parcel over external modules', async function() { + let b = await bundle( + path.join(__dirname, '/integration/dynamic-external/index.js'), + { + target: 'browser' + } + ); + + await assertBundleTree(b, { + name: 'index.js', + assets: ['index.js'], + childBundles: [ + { + type: 'map' + } + ] + }); + }); + it('should support bundling workers', async function() { let b = await bundle(path.join(__dirname, '/integration/workers/index.js'));