Skip to content

Commit 3c0e1f7

Browse files
motiz88facebook-github-bot
authored andcommitted
Move experimentalImportBundleSupport option from transformer to server
Summary: `experimentalImportBundleSupport` (introduced in D15943150 (72329d0)) is never used to change the transformer's output for a given module, so having it under `transformer` is (1) confusing and (2) inefficient, because it gets added to the transformer cache key and therefore forks the transformer cache. Here we move it to `server` while keeping it as an experimental, undocumented option (for now). This change removes one of the blockers to officially releasing this feature in open source: `metro build` only ever makes sense with `experimentalImportBundleSupport: false`, but prior to this diff, it couldn't share a cache with `metro serve` running with `experimentalImportBundleSupport: true` - so enabling this feature in the server would have regressed Metro's overall perceived performance on a given machine. Changelog: [Internal] Reviewed By: jacdebug Differential Revision: D40389568 fbshipit-source-id: 644d070ff069e8396b9f44e8429147a42727eb5f
1 parent a557c3c commit 3c0e1f7

11 files changed

Lines changed: 20 additions & 22 deletions

File tree

packages/metro-config/src/__tests__/__snapshots__/loadConfig-test.js.snap

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ Object {
8888
},
8989
"server": Object {
9090
"enhanceMiddleware": [Function],
91+
"experimentalImportBundleSupport": false,
9192
"port": 8080,
9293
"rewriteRequestUrl": [Function],
9394
"runInspectorProxy": true,
@@ -108,7 +109,6 @@ Object {
108109
"dynamicDepsInPackages": "throwAtRuntime",
109110
"enableBabelRCLookup": true,
110111
"enableBabelRuntime": true,
111-
"experimentalImportBundleSupport": false,
112112
"getTransformOptions": [Function],
113113
"globalPrefix": "",
114114
"hermesParser": false,
@@ -255,6 +255,7 @@ Object {
255255
},
256256
"server": Object {
257257
"enhanceMiddleware": [Function],
258+
"experimentalImportBundleSupport": false,
258259
"port": 8080,
259260
"rewriteRequestUrl": [Function],
260261
"runInspectorProxy": true,
@@ -275,7 +276,6 @@ Object {
275276
"dynamicDepsInPackages": "throwAtRuntime",
276277
"enableBabelRCLookup": true,
277278
"enableBabelRuntime": true,
278-
"experimentalImportBundleSupport": false,
279279
"getTransformOptions": [Function],
280280
"globalPrefix": "",
281281
"hermesParser": false,
@@ -422,6 +422,7 @@ Object {
422422
},
423423
"server": Object {
424424
"enhanceMiddleware": [Function],
425+
"experimentalImportBundleSupport": false,
425426
"port": 8080,
426427
"rewriteRequestUrl": [Function],
427428
"runInspectorProxy": true,
@@ -442,7 +443,6 @@ Object {
442443
"dynamicDepsInPackages": "throwAtRuntime",
443444
"enableBabelRCLookup": true,
444445
"enableBabelRuntime": true,
445-
"experimentalImportBundleSupport": false,
446446
"getTransformOptions": [Function],
447447
"globalPrefix": "",
448448
"hermesParser": false,
@@ -589,6 +589,7 @@ Object {
589589
},
590590
"server": Object {
591591
"enhanceMiddleware": [Function],
592+
"experimentalImportBundleSupport": false,
592593
"port": 8080,
593594
"rewriteRequestUrl": [Function],
594595
"runInspectorProxy": true,
@@ -609,7 +610,6 @@ Object {
609610
"dynamicDepsInPackages": "throwAtRuntime",
610611
"enableBabelRCLookup": true,
611612
"enableBabelRuntime": true,
612-
"experimentalImportBundleSupport": false,
613613
"getTransformOptions": [Function],
614614
"globalPrefix": "",
615615
"hermesParser": false,

packages/metro-config/src/configTypes.flow.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,6 @@ type TransformerConfigT = {
131131
transformVariants: TransformVariants,
132132
workerPath: string,
133133
publicPath: string,
134-
experimentalImportBundleSupport: boolean,
135134
};
136135

137136
type MetalConfigT = {
@@ -152,11 +151,12 @@ type MetalConfigT = {
152151

153152
type ServerConfigT = {
154153
enhanceMiddleware: (Middleware, Server) => Middleware,
155-
useGlobalHotkey: boolean,
154+
experimentalImportBundleSupport: boolean,
156155
port: number,
157-
unstable_serverRoot: ?string,
158156
rewriteRequestUrl: string => string,
159157
runInspectorProxy: boolean,
158+
unstable_serverRoot: ?string,
159+
useGlobalHotkey: boolean,
160160
verifyConnections: boolean,
161161
};
162162

packages/metro-config/src/defaults/index.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,14 @@ const getDefaultValues = (projectRoot: ?string): ConfigT => ({
6565
},
6666

6767
server: {
68-
useGlobalHotkey: true,
69-
port: 8080,
7068
enhanceMiddleware: middleware => middleware,
69+
experimentalImportBundleSupport: false,
70+
port: 8080,
7171
rewriteRequestUrl: url => url,
7272
runInspectorProxy: true,
73-
verifyConnections: false,
7473
unstable_serverRoot: null,
74+
useGlobalHotkey: true,
75+
verifyConnections: false,
7576
},
7677

7778
symbolicator: {
@@ -86,7 +87,6 @@ const getDefaultValues = (projectRoot: ?string): ConfigT => ({
8687
dynamicDepsInPackages: 'throwAtRuntime',
8788
enableBabelRCLookup: true,
8889
enableBabelRuntime: true,
89-
experimentalImportBundleSupport: false,
9090
getTransformOptions: async () => ({
9191
transform: {
9292
experimentalImportSupport: false,

packages/metro-transform-worker/src/__tests__/index-test.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ const baseConfig: JsTransformerConfig = {
5353
dynamicDepsInPackages: 'reject',
5454
enableBabelRCLookup: false,
5555
enableBabelRuntime: true,
56-
experimentalImportBundleSupport: false,
5756
globalPrefix: '',
5857
hermesParser: false,
5958
minifierConfig: {},

packages/metro-transform-worker/src/index.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ export type JsTransformerConfig = $ReadOnly<{
8686
dynamicDepsInPackages: DynamicRequiresBehavior,
8787
enableBabelRCLookup: boolean,
8888
enableBabelRuntime: boolean | string,
89-
experimentalImportBundleSupport: boolean,
9089
globalPrefix: string,
9190
hermesParser: boolean,
9291
minifierConfig: MinifierConfig,

packages/metro/src/HmrServer.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ class HmrServer<TClient: Client> {
129129
resolverOptions,
130130
shallow: graphOptions.shallow,
131131
experimentalImportBundleSupport:
132-
this._config.transformer.experimentalImportBundleSupport,
132+
this._config.server.experimentalImportBundleSupport,
133133
unstable_allowRequireContext:
134134
this._config.transformer.unstable_allowRequireContext,
135135
});

packages/metro/src/IncrementalBundler.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ class IncrementalBundler {
127127
transformOptions,
128128
onProgress: otherOptions.onProgress,
129129
experimentalImportBundleSupport:
130-
this._config.transformer.experimentalImportBundleSupport,
130+
this._config.server.experimentalImportBundleSupport,
131131
unstable_allowRequireContext:
132132
this._config.transformer.unstable_allowRequireContext,
133133
shallow: otherOptions.shallow,
@@ -173,7 +173,7 @@ class IncrementalBundler {
173173
transformOptions,
174174
onProgress: otherOptions.onProgress,
175175
experimentalImportBundleSupport:
176-
this._config.transformer.experimentalImportBundleSupport,
176+
this._config.server.experimentalImportBundleSupport,
177177
unstable_allowRequireContext:
178178
this._config.transformer.unstable_allowRequireContext,
179179
shallow: otherOptions.shallow,
@@ -234,7 +234,7 @@ class IncrementalBundler {
234234
resolverOptions,
235235
shallow: otherOptions.shallow,
236236
experimentalImportBundleSupport:
237-
this._config.transformer.experimentalImportBundleSupport,
237+
this._config.server.experimentalImportBundleSupport,
238238
unstable_allowRequireContext:
239239
this._config.transformer.unstable_allowRequireContext,
240240
});

packages/metro/src/Server.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -574,7 +574,7 @@ class Server {
574574
});
575575
const graphId = getGraphId(resolvedEntryFilePath, transformOptions, {
576576
experimentalImportBundleSupport:
577-
this._config.transformer.experimentalImportBundleSupport,
577+
this._config.server.experimentalImportBundleSupport,
578578
unstable_allowRequireContext:
579579
this._config.transformer.unstable_allowRequireContext,
580580
resolverOptions,
@@ -1231,7 +1231,7 @@ class Server {
12311231

12321232
const graphId = getGraphId(resolvedEntryFilePath, transformOptions, {
12331233
experimentalImportBundleSupport:
1234-
this._config.transformer.experimentalImportBundleSupport,
1234+
this._config.server.experimentalImportBundleSupport,
12351235
unstable_allowRequireContext:
12361236
this._config.transformer.unstable_allowRequireContext,
12371237
resolverOptions,

packages/metro/src/__tests__/HmrServer-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,11 +120,11 @@ describe('HmrServer', () => {
120120
serializer: {experimentalSerializerHook: () => {}},
121121
reporter: {update: jest.fn()},
122122
transformer: {
123-
experimentalImportBundleSupport: false,
124123
unstable_allowRequireContext: false,
125124
},
126125
resolver: {platforms: []},
127126
server: {
127+
experimentalImportBundleSupport: false,
128128
rewriteRequestUrl(requrl) {
129129
const rewritten = requrl.replace(
130130
/__REMOVE_THIS_WHEN_REWRITING__/g,

packages/metro/src/lib/getPrependedScripts.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ async function getPrependedScripts(
6868
transformOptions,
6969
onProgress: null,
7070
experimentalImportBundleSupport:
71-
config.transformer.experimentalImportBundleSupport,
71+
config.server.experimentalImportBundleSupport,
7272
shallow: false,
7373
},
7474
);

0 commit comments

Comments
 (0)