diff --git a/packages/metro/src/DeltaBundler/Serializers/helpers/__tests__/js-test.js b/packages/metro/src/DeltaBundler/Serializers/helpers/__tests__/js-test.js index 0ca2390162..be04c83c59 100644 --- a/packages/metro/src/DeltaBundler/Serializers/helpers/__tests__/js-test.js +++ b/packages/metro/src/DeltaBundler/Serializers/helpers/__tests__/js-test.js @@ -142,7 +142,7 @@ describe('wrapModule()', () => { raw( wrapModule(myModule, { createModuleId: createModuleIdFactory(), - dev: false, + dev: true, includeAsyncPaths: true, projectRoot: '/root', serverRoot: '/root', @@ -150,7 +150,7 @@ describe('wrapModule()', () => { }), ), ).toMatchInlineSnapshot( - `__d(function() { console.log("foo") },0,{"0":1,"1":2,"paths":{"1":"/../bar.bundle?param1=true¶m2=1234&modulesOnly=true&runModule=false"}});`, + `__d(function() { console.log("foo") },0,{"0":1,"1":2,"paths":{"1":"/../bar.bundle?param1=true¶m2=1234&modulesOnly=true&runModule=false"}},"foo.js");`, ); }); @@ -164,7 +164,7 @@ describe('wrapModule()', () => { raw( wrapModule(myModule, { createModuleId: createModuleIdFactory(), - dev: false, + dev: true, includeAsyncPaths: true, projectRoot: '/root', serverRoot: '/', @@ -172,7 +172,7 @@ describe('wrapModule()', () => { }), ), ).toMatchInlineSnapshot( - `__d(function() { console.log("foo") },0,{"0":1,"1":2,"paths":{"1":"/bar.bundle?param1=true¶m2=1234&modulesOnly=true&runModule=false"}});`, + `__d(function() { console.log("foo") },0,{"0":1,"1":2,"paths":{"1":"/bar.bundle?param1=true¶m2=1234&modulesOnly=true&runModule=false"}},"foo.js");`, ); }); @@ -186,7 +186,7 @@ describe('wrapModule()', () => { raw( wrapModule(myModule, { createModuleId: createModuleIdFactory(), - dev: false, + dev: true, includeAsyncPaths: true, projectRoot: '/root', serverRoot: '/root', @@ -195,7 +195,29 @@ describe('wrapModule()', () => { }), ), ).toMatchInlineSnapshot( - `__d(function() { console.log("foo") },0,{"0":1,"1":2,"paths":{"1":"/../bar.bundle?modulesOnly=true&runModule=false"}});`, + `__d(function() { console.log("foo") },0,{"0":1,"1":2,"paths":{"1":"/../bar.bundle?modulesOnly=true&runModule=false"}},"foo.js");`, + ); + }); + + test('async dependency paths do not add query params when dev is false', () => { + const dep = nullthrows(myModule.dependencies.get('bar')); + myModule.dependencies.set('bar', { + ...dep, + data: {...dep.data, data: {...dep.data.data, asyncType: 'async'}}, + }); + expect( + raw( + wrapModule(myModule, { + createModuleId: createModuleIdFactory(), + dev: false, + includeAsyncPaths: true, + projectRoot: '/root', + serverRoot: '/root', + sourceUrl: 'http://localhost/Main.bundle?param1=true¶m2=1234', + }), + ), + ).toMatchInlineSnapshot( + `__d(function() { console.log("foo") },0,{"0":1,"1":2,"paths":{"1":"/../bar.bundle"}});`, ); }); }); diff --git a/packages/metro/src/DeltaBundler/Serializers/helpers/js.js b/packages/metro/src/DeltaBundler/Serializers/helpers/js.js index 6650eddfef..b438d60492 100644 --- a/packages/metro/src/DeltaBundler/Serializers/helpers/js.js +++ b/packages/metro/src/DeltaBundler/Serializers/helpers/js.js @@ -60,11 +60,15 @@ function getModuleParams(module: Module<>, options: Options): Array { // Construct a server-relative URL for the split bundle, propagating // most parameters from the main bundle's URL. - const {searchParams} = new URL( - jscSafeUrl.toNormalUrl(options.sourceUrl), - ); - searchParams.set('modulesOnly', 'true'); - searchParams.set('runModule', 'false'); + let searchParamsString = ''; + if (options.dev) { + const {searchParams} = new URL( + jscSafeUrl.toNormalUrl(options.sourceUrl), + ); + searchParams.set('modulesOnly', 'true'); + searchParams.set('runModule', 'false'); + searchParamsString = '?' + searchParams.toString(); + } const bundlePath = path.relative( options.serverRoot, @@ -77,8 +81,8 @@ function getModuleParams(module: Module<>, options: Options): Array { // Strip the file extension path.basename(bundlePath, path.extname(bundlePath)), ) + - '.bundle?' + - searchParams.toString(); + '.bundle' + + searchParamsString; } return id; },