-
Notifications
You must be signed in to change notification settings - Fork 117
Expand file tree
/
Copy pathesbuildTransformerConfig.ts
More file actions
59 lines (54 loc) · 2.69 KB
/
esbuildTransformerConfig.ts
File metadata and controls
59 lines (54 loc) · 2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import type { TransformerConfigT } from "metro-config";
export const esbuildTransformerConfig: Partial<TransformerConfigT> = {
getTransformOptions: async () => ({
transform: {
/**
* Disable `import-export-plugin` to preserve ES6 import/export syntax.
*
* @see https://github.com/facebook/metro/blob/598de6f537f4d7286cee89094bcdb7101e8e4f17/packages/metro-transform-worker/src/index.js#L315
*/
experimentalImportSupport: false,
/**
* Disable `inline-requires` as it is only used to inline `require()`
* calls.
*
* @see https://github.com/facebook/metro/blob/598de6f537f4d7286cee89094bcdb7101e8e4f17/packages/metro-transform-worker/src/index.js#L319
*/
inlineRequires: false,
},
}),
/**
* Minifying is unnecessary as esbuild will take care of it.
*/
minifierPath: require.resolve("./minify"),
/**
* Metro transforms `require(...)` calls to
* `$$_REQUIRE(dependencyMap[n], ...)` in two steps. In `collectDependencies`,
* it adds the `dependencyMap[n]` parameter so the call becomes
* `require(dependencyMap[n], ...)`. Then it renames the call in
* `JsFileWrapping.wrapModule`. This flag will disable both transformations.
*
* Note that this setting is experimental and may be removed in a future
* version.
*
* @see https://github.com/facebook/metro/blob/598de6f537f4d7286cee89094bcdb7101e8e4f17/packages/metro-transform-worker/src/index.js#L388
* @see https://github.com/facebook/metro/blob/598de6f537f4d7286cee89094bcdb7101e8e4f17/packages/metro-transform-worker/src/index.js#L410
* @see https://github.com/facebook/metro/blob/598de6f537f4d7286cee89094bcdb7101e8e4f17/packages/metro-transform-worker/src/index.js#L564
* @see https://github.com/facebook/metro/blob/598de6f537f4d7286cee89094bcdb7101e8e4f17/packages/metro/src/ModuleGraph/worker/collectDependencies.js#L467
* @see https://github.com/facebook/metro/blob/598de6f537f4d7286cee89094bcdb7101e8e4f17/packages/metro/src/ModuleGraph/worker/JsFileWrapping.js#L28
* @see https://github.com/facebook/metro/commit/598de6f537f4d7286cee89094bcdb7101e8e4f17
*/
unstable_disableModuleWrapping: true,
/**
* Both of these disable the `normalizePseudoGlobals` plugin. This is needed
* to prevent Metro from renaming globals.
*
* Note that this setting is experimental and may be removed in a future
* version.
*
* @see https://github.com/facebook/metro/blob/598de6f537f4d7286cee89094bcdb7101e8e4f17/packages/metro-transform-worker/src/index.js#L434
* @see https://github.com/facebook/metro/commit/5b913fa0cd30ce5b90e2b1f6318454fbdd170708
*/
unstable_disableNormalizePseudoGlobals: true,
optimizationSizeLimit: 0,
};