From 71c75cb05d218da71dd0f476cb7824e00386b63e Mon Sep 17 00:00:00 2001 From: Niklas Mischkulnig <4586894+mischnic@users.noreply.github.com> Date: Mon, 1 Nov 2021 10:15:55 +0100 Subject: [PATCH 1/2] Make Webpack loader detection regex dramatically faster --- packages/resolvers/default/src/DefaultResolver.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/resolvers/default/src/DefaultResolver.js b/packages/resolvers/default/src/DefaultResolver.js index 3d6585b4b14..5261646adfa 100644 --- a/packages/resolvers/default/src/DefaultResolver.js +++ b/packages/resolvers/default/src/DefaultResolver.js @@ -5,7 +5,7 @@ import NodeResolver from '@parcel/node-resolver-core'; // Throw user friendly errors on special webpack loader syntax // ex. `imports-loader?$=jquery!./example.js` -const WEBPACK_IMPORT_REGEX = /\S+-loader\S*!\S+/g; +const WEBPACK_IMPORT_REGEX = /^\w+-loader(?:\?\S*)?!/; export default (new Resolver({ resolve({dependency, options, specifier}) { From 7728e886ffd680c0c660215a82ee717c67d9a5e0 Mon Sep 17 00:00:00 2001 From: Niklas Mischkulnig <4586894+mischnic@users.noreply.github.com> Date: Mon, 1 Nov 2021 10:26:31 +0100 Subject: [PATCH 2/2] Add test --- packages/core/integration-tests/test/resolver.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/packages/core/integration-tests/test/resolver.js b/packages/core/integration-tests/test/resolver.js index b2f10897f47..d99b93c9c41 100644 --- a/packages/core/integration-tests/test/resolver.js +++ b/packages/core/integration-tests/test/resolver.js @@ -382,4 +382,20 @@ describe('resolver', function () { let output = await run(b); assert.strictEqual(output.default, 2); }); + + it('should support very long dependency specifiers', async function () { + this.timeout(8000); + + let inputDir = path.join(__dirname, 'input'); + + await outputFS.mkdirp(inputDir); + await outputFS.writeFile( + path.join(inputDir, 'index.html'), + ``, + ); + + await bundle(path.join(inputDir, 'index.html'), { + inputFS: overlayFS, + }); + }); });