@expo/cli 0.18.19 → 0.18.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/bin/cli +1 -1
- package/build/src/export/createMetadataJson.js.map +1 -1
- package/build/src/export/embed/exportEmbedAsync.js +110 -41
- package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
- package/build/src/export/embed/resolveOptions.js +0 -1
- package/build/src/export/embed/resolveOptions.js.map +1 -1
- package/build/src/export/exportApp.js +133 -92
- package/build/src/export/exportApp.js.map +1 -1
- package/build/src/export/exportAssets.js.map +1 -1
- package/build/src/export/exportHermes.js +15 -0
- package/build/src/export/exportHermes.js.map +1 -1
- package/build/src/export/exportStaticAsync.js +5 -49
- package/build/src/export/exportStaticAsync.js.map +1 -1
- package/build/src/export/favicon.js +5 -4
- package/build/src/export/favicon.js.map +1 -1
- package/build/src/export/saveAssets.js.map +1 -1
- package/build/src/run/startBundler.js +1 -8
- package/build/src/run/startBundler.js.map +1 -1
- package/build/src/start/server/BundlerDevServer.js +10 -3
- package/build/src/start/server/BundlerDevServer.js.map +1 -1
- package/build/src/start/server/DevServerManager.js +19 -4
- package/build/src/start/server/DevServerManager.js.map +1 -1
- package/build/src/start/server/DevelopmentSession.js +21 -11
- package/build/src/start/server/DevelopmentSession.js.map +1 -1
- package/build/src/start/server/getStaticRenderFunctions.js +9 -123
- package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
- package/build/src/start/server/metro/MetroBundlerDevServer.js +469 -177
- package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
- package/build/src/start/server/metro/createServerRouteMiddleware.js +0 -9
- package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
- package/build/src/start/server/metro/instantiateMetro.js +44 -37
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
- package/build/src/start/server/metro/metroErrorInterface.js +49 -2
- package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
- package/build/src/start/server/metro/metroPrivateServer.js +26 -0
- package/build/src/start/server/metro/metroPrivateServer.js.map +1 -0
- package/build/src/start/server/metro/runServer-fork.js +31 -21
- package/build/src/start/server/metro/runServer-fork.js.map +1 -1
- package/build/src/start/server/metro/withMetroMultiPlatform.js +9 -1
- package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
- package/build/src/start/server/middleware/ManifestMiddleware.js +7 -4
- package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/metroOptions.js +16 -4
- package/build/src/start/server/middleware/metroOptions.js.map +1 -1
- package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
- package/build/src/utils/telemetry/getContext.js +1 -1
- package/package.json +3 -3
- package/build/src/export/fork-bundleAsync.js +0 -284
- package/build/src/export/fork-bundleAsync.js.map +0 -1
package/build/bin/cli
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/export/createMetadataJson.ts"],"sourcesContent":["import path from 'path';\n\nimport { BundleOutput } from './
|
|
1
|
+
{"version":3,"sources":["../../../src/export/createMetadataJson.ts"],"sourcesContent":["import path from 'path';\n\nimport type { BundleOutput } from './saveAssets';\n\nexport type BundlePlatform = 'android' | 'ios';\n\ntype PlatformMetadataAsset = { path: string; ext: string };\n\ntype PlatformMetadata = { bundle: string; assets: PlatformMetadataAsset[] };\n\ntype FileMetadata = {\n [key in BundlePlatform]: PlatformMetadata;\n};\n\nexport function createMetadataJson({\n bundles,\n fileNames,\n embeddedHashSet,\n}: {\n bundles: Partial<Record<BundlePlatform, Pick<BundleOutput, 'assets'>>>;\n fileNames: Record<string, string[]>;\n embeddedHashSet?: Set<string>;\n}): {\n version: 0;\n bundler: 'metro';\n fileMetadata: FileMetadata;\n} {\n // Build metadata.json\n return {\n version: 0,\n bundler: 'metro',\n fileMetadata: Object.entries(bundles).reduce<Record<string, Partial<PlatformMetadata>>>(\n (metadata, [platform, bundle]) => {\n if (platform === 'web') return metadata;\n\n return {\n ...metadata,\n [platform]: {\n // Get the filename for each platform's bundle.\n // TODO: Add multi-bundle support to EAS Update!!\n bundle: fileNames[platform][0],\n // Collect all of the assets and convert them to the serial format.\n assets: bundle.assets\n .filter((asset) => !embeddedHashSet || !embeddedHashSet.has(asset.hash))\n .map((asset) =>\n // Each asset has multiple hashes which we convert and then flatten.\n asset.fileHashes?.map((hash) => ({\n path: path.join('assets', hash),\n ext: asset.type,\n }))\n )\n .filter(Boolean)\n .flat(),\n },\n };\n },\n {}\n ) as FileMetadata,\n };\n}\n"],"names":["createMetadataJson","bundles","fileNames","embeddedHashSet","version","bundler","fileMetadata","Object","entries","reduce","metadata","platform","bundle","assets","filter","asset","has","hash","map","fileHashes","path","join","ext","type","Boolean","flat"],"mappings":"AAAA;;;;+BAcgBA,oBAAkB;;aAAlBA,kBAAkB;;;8DAdjB,MAAM;;;;;;;;;;;AAchB,SAASA,kBAAkB,CAAC,EACjCC,OAAO,CAAA,EACPC,SAAS,CAAA,EACTC,eAAe,CAAA,EAKhB,EAIC;IACA,sBAAsB;IACtB,OAAO;QACLC,OAAO,EAAE,CAAC;QACVC,OAAO,EAAE,OAAO;QAChBC,YAAY,EAAEC,MAAM,CAACC,OAAO,CAACP,OAAO,CAAC,CAACQ,MAAM,CAC1C,CAACC,QAAQ,EAAE,CAACC,QAAQ,EAAEC,MAAM,CAAC,GAAK;YAChC,IAAID,QAAQ,KAAK,KAAK,EAAE,OAAOD,QAAQ,CAAC;YAExC,OAAO;gBACL,GAAGA,QAAQ;gBACX,CAACC,QAAQ,CAAC,EAAE;oBACV,+CAA+C;oBAC/C,iDAAiD;oBACjDC,MAAM,EAAEV,SAAS,CAACS,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC9B,mEAAmE;oBACnEE,MAAM,EAAED,MAAM,CAACC,MAAM,CAClBC,MAAM,CAAC,CAACC,KAAK,GAAK,CAACZ,eAAe,IAAI,CAACA,eAAe,CAACa,GAAG,CAACD,KAAK,CAACE,IAAI,CAAC,CAAC,CACvEC,GAAG,CAAC,CAACH,KAAK;4BACT,oEAAoE;wBACpEA,GAAgB;wBAAhBA,OAAAA,CAAAA,GAAgB,GAAhBA,KAAK,CAACI,UAAU,SAAK,GAArBJ,KAAAA,CAAqB,GAArBA,GAAgB,CAAEG,GAAG,CAAC,CAACD,IAAI,GAAK,CAAC;gCAC/BG,IAAI,EAAEA,KAAI,EAAA,QAAA,CAACC,IAAI,CAAC,QAAQ,EAAEJ,IAAI,CAAC;gCAC/BK,GAAG,EAAEP,KAAK,CAACQ,IAAI;6BAChB,CAAC,CAAC,CAAA;qBAAA,CACJ,CACAT,MAAM,CAACU,OAAO,CAAC,CACfC,IAAI,EAAE;iBACV;aACF,CAAC;QACJ,CAAC,EACD,EAAE,CACH;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -15,9 +15,8 @@ function _export(target, all) {
|
|
|
15
15
|
}
|
|
16
16
|
_export(exports, {
|
|
17
17
|
exportEmbedAsync: ()=>exportEmbedAsync,
|
|
18
|
-
createMetroServerAndBundleRequestAsync: ()=>createMetroServerAndBundleRequestAsync,
|
|
19
18
|
exportEmbedBundleAndAssetsAsync: ()=>exportEmbedBundleAndAssetsAsync,
|
|
20
|
-
|
|
19
|
+
createMetroServerAndBundleRequestAsync: ()=>createMetroServerAndBundleRequestAsync,
|
|
21
20
|
exportEmbedAssetsAsync: ()=>exportEmbedAssetsAsync
|
|
22
21
|
});
|
|
23
22
|
function _config() {
|
|
@@ -27,6 +26,20 @@ function _config() {
|
|
|
27
26
|
};
|
|
28
27
|
return data;
|
|
29
28
|
}
|
|
29
|
+
function _getAssets() {
|
|
30
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("@expo/metro-config/build/transform-worker/getAssets"));
|
|
31
|
+
_getAssets = function() {
|
|
32
|
+
return data;
|
|
33
|
+
};
|
|
34
|
+
return data;
|
|
35
|
+
}
|
|
36
|
+
function _assert() {
|
|
37
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("assert"));
|
|
38
|
+
_assert = function() {
|
|
39
|
+
return data;
|
|
40
|
+
};
|
|
41
|
+
return data;
|
|
42
|
+
}
|
|
30
43
|
function _fs() {
|
|
31
44
|
const data = /*#__PURE__*/ _interopRequireDefault(require("fs"));
|
|
32
45
|
_fs = function() {
|
|
@@ -48,6 +61,13 @@ function _server() {
|
|
|
48
61
|
};
|
|
49
62
|
return data;
|
|
50
63
|
}
|
|
64
|
+
function _splitBundleOptions() {
|
|
65
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("metro/src/lib/splitBundleOptions"));
|
|
66
|
+
_splitBundleOptions = function() {
|
|
67
|
+
return data;
|
|
68
|
+
};
|
|
69
|
+
return data;
|
|
70
|
+
}
|
|
51
71
|
function _bundle() {
|
|
52
72
|
const data = /*#__PURE__*/ _interopRequireDefault(require("metro/src/shared/output/bundle"));
|
|
53
73
|
_bundle = function() {
|
|
@@ -64,14 +84,15 @@ function _path() {
|
|
|
64
84
|
}
|
|
65
85
|
const _xcodeCompilerLogger = require("./xcodeCompilerLogger");
|
|
66
86
|
const _log = require("../../log");
|
|
87
|
+
const _devServerManager = require("../../start/server/DevServerManager");
|
|
88
|
+
const _metroBundlerDevServer = require("../../start/server/metro/MetroBundlerDevServer");
|
|
67
89
|
const _instantiateMetro = require("../../start/server/metro/instantiateMetro");
|
|
90
|
+
const _metroPrivateServer = require("../../start/server/metro/metroPrivateServer");
|
|
68
91
|
const _metroOptions = require("../../start/server/middleware/metroOptions");
|
|
69
92
|
const _ansi = require("../../utils/ansi");
|
|
70
93
|
const _dir = require("../../utils/dir");
|
|
71
94
|
const _nodeEnv = require("../../utils/nodeEnv");
|
|
72
|
-
const _profile = require("../../utils/profile");
|
|
73
95
|
const _exportHermes = require("../exportHermes");
|
|
74
|
-
const _forkBundleAsync = require("../fork-bundleAsync");
|
|
75
96
|
const _persistMetroAssets = require("../persistMetroAssets");
|
|
76
97
|
function _interopRequireDefault(obj) {
|
|
77
98
|
return obj && obj.__esModule ? obj : {
|
|
@@ -125,6 +146,69 @@ async function exportEmbedAsync(projectRoot, options) {
|
|
|
125
146
|
}) : null,
|
|
126
147
|
]);
|
|
127
148
|
}
|
|
149
|
+
async function exportEmbedBundleAndAssetsAsync(projectRoot, options) {
|
|
150
|
+
const devServerManager = await _devServerManager.DevServerManager.startMetroAsync(projectRoot, {
|
|
151
|
+
minify: options.minify,
|
|
152
|
+
mode: options.dev ? "development" : "production",
|
|
153
|
+
port: 8081,
|
|
154
|
+
isExporting: true,
|
|
155
|
+
location: {},
|
|
156
|
+
resetDevServer: options.resetCache,
|
|
157
|
+
maxWorkers: options.maxWorkers
|
|
158
|
+
});
|
|
159
|
+
const devServer = devServerManager.getDefaultDevServer();
|
|
160
|
+
(0, _assert().default)(devServer instanceof _metroBundlerDevServer.MetroBundlerDevServer);
|
|
161
|
+
const exp = (0, _config().getConfig)(projectRoot, {
|
|
162
|
+
skipSDKVersionRequirement: true
|
|
163
|
+
}).exp;
|
|
164
|
+
const isHermes = (0, _exportHermes.isEnableHermesManaged)(exp, options.platform);
|
|
165
|
+
let sourceMapUrl = options.sourcemapOutput;
|
|
166
|
+
if (sourceMapUrl && !options.sourcemapUseAbsolutePath) {
|
|
167
|
+
sourceMapUrl = _path().default.basename(sourceMapUrl);
|
|
168
|
+
}
|
|
169
|
+
try {
|
|
170
|
+
var ref, ref1;
|
|
171
|
+
const bundles = await devServer.legacySinglePageExportBundleAsync({
|
|
172
|
+
splitChunks: false,
|
|
173
|
+
mainModuleName: options.entryFile,
|
|
174
|
+
platform: options.platform,
|
|
175
|
+
minify: options.minify,
|
|
176
|
+
mode: options.dev ? "development" : "production",
|
|
177
|
+
engine: isHermes ? "hermes" : undefined,
|
|
178
|
+
serializerIncludeMaps: !!sourceMapUrl,
|
|
179
|
+
// Never output bytecode in the exported bundle since that is hardcoded in the native run script.
|
|
180
|
+
bytecode: false,
|
|
181
|
+
// source map inline
|
|
182
|
+
reactCompiler: !!((ref = exp.experiments) == null ? void 0 : ref.reactCompiler)
|
|
183
|
+
}, {
|
|
184
|
+
sourceMapUrl,
|
|
185
|
+
unstable_transformProfile: options.unstableTransformProfile || (isHermes ? "hermes-stable" : "default")
|
|
186
|
+
});
|
|
187
|
+
return {
|
|
188
|
+
bundle: {
|
|
189
|
+
code: bundles.artifacts.filter((a)=>a.type === "js")[0].source.toString(),
|
|
190
|
+
// Can be optional when source maps aren't enabled.
|
|
191
|
+
map: (ref1 = bundles.artifacts.filter((a)=>a.type === "map")[0]) == null ? void 0 : ref1.source.toString()
|
|
192
|
+
},
|
|
193
|
+
assets: bundles.assets
|
|
194
|
+
};
|
|
195
|
+
} catch (error) {
|
|
196
|
+
if (isError(error)) {
|
|
197
|
+
// Log using Xcode error format so the errors are picked up by xcodebuild.
|
|
198
|
+
// https://developer.apple.com/documentation/xcode/running-custom-scripts-during-a-build#Log-errors-and-warnings-from-your-script
|
|
199
|
+
if (options.platform === "ios") {
|
|
200
|
+
// If the error is about to be presented in Xcode, strip the ansi characters from the message.
|
|
201
|
+
if ("message" in error && (0, _xcodeCompilerLogger.isExecutingFromXcodebuild)()) {
|
|
202
|
+
error.message = (0, _ansi.stripAnsi)(error.message);
|
|
203
|
+
}
|
|
204
|
+
(0, _xcodeCompilerLogger.logMetroErrorInXcode)(projectRoot, error);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
throw error;
|
|
208
|
+
} finally{
|
|
209
|
+
devServerManager.stopAsync();
|
|
210
|
+
}
|
|
211
|
+
}
|
|
128
212
|
async function createMetroServerAndBundleRequestAsync(projectRoot, options) {
|
|
129
213
|
const exp = (0, _config().getConfig)(projectRoot, {
|
|
130
214
|
skipSDKVersionRequirement: true
|
|
@@ -156,8 +240,9 @@ async function createMetroServerAndBundleRequestAsync(projectRoot, options) {
|
|
|
156
240
|
minify: options.minify,
|
|
157
241
|
mode: options.dev ? "development" : "production",
|
|
158
242
|
engine: isHermes ? "hermes" : undefined,
|
|
159
|
-
|
|
160
|
-
|
|
243
|
+
isExporting: true,
|
|
244
|
+
// Never output bytecode in the exported bundle since that is hardcoded in the native run script.
|
|
245
|
+
bytecode: false
|
|
161
246
|
}),
|
|
162
247
|
sourceMapUrl,
|
|
163
248
|
unstable_transformProfile: options.unstableTransformProfile || (isHermes ? "hermes-stable" : "default")
|
|
@@ -170,46 +255,30 @@ async function createMetroServerAndBundleRequestAsync(projectRoot, options) {
|
|
|
170
255
|
bundleRequest
|
|
171
256
|
};
|
|
172
257
|
}
|
|
173
|
-
async function exportEmbedBundleAndAssetsAsync(projectRoot, options) {
|
|
174
|
-
const { server , bundleRequest } = await createMetroServerAndBundleRequestAsync(projectRoot, options);
|
|
175
|
-
try {
|
|
176
|
-
const bundle = await exportEmbedBundleAsync(server, bundleRequest, projectRoot, options);
|
|
177
|
-
const assets = await exportEmbedAssetsAsync(server, bundleRequest, projectRoot, options);
|
|
178
|
-
return {
|
|
179
|
-
bundle,
|
|
180
|
-
assets
|
|
181
|
-
};
|
|
182
|
-
} finally{
|
|
183
|
-
server.end();
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
async function exportEmbedBundleAsync(server, bundleRequest, projectRoot, options) {
|
|
187
|
-
try {
|
|
188
|
-
return await (0, _profile.profile)(server.build.bind(server), "metro-bundle")({
|
|
189
|
-
...bundleRequest,
|
|
190
|
-
bundleType: "bundle"
|
|
191
|
-
});
|
|
192
|
-
} catch (error) {
|
|
193
|
-
if (isError(error)) {
|
|
194
|
-
// Log using Xcode error format so the errors are picked up by xcodebuild.
|
|
195
|
-
// https://developer.apple.com/documentation/xcode/running-custom-scripts-during-a-build#Log-errors-and-warnings-from-your-script
|
|
196
|
-
if (options.platform === "ios") {
|
|
197
|
-
// If the error is about to be presented in Xcode, strip the ansi characters from the message.
|
|
198
|
-
if ("message" in error && (0, _xcodeCompilerLogger.isExecutingFromXcodebuild)()) {
|
|
199
|
-
error.message = (0, _ansi.stripAnsi)(error.message);
|
|
200
|
-
}
|
|
201
|
-
(0, _xcodeCompilerLogger.logMetroErrorInXcode)(projectRoot, error);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
throw error;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
258
|
async function exportEmbedAssetsAsync(server, bundleRequest, projectRoot, options) {
|
|
208
259
|
try {
|
|
209
|
-
|
|
260
|
+
const { entryFile , onProgress , resolverOptions , transformOptions } = (0, _splitBundleOptions().default)({
|
|
210
261
|
...bundleRequest,
|
|
211
262
|
bundleType: "todo"
|
|
212
263
|
});
|
|
264
|
+
(0, _metroPrivateServer.assertMetroPrivateServer)(server);
|
|
265
|
+
const dependencies = await server._bundler.getDependencies([
|
|
266
|
+
entryFile
|
|
267
|
+
], transformOptions, resolverOptions, {
|
|
268
|
+
onProgress,
|
|
269
|
+
shallow: false,
|
|
270
|
+
lazy: false
|
|
271
|
+
});
|
|
272
|
+
const config = server._config;
|
|
273
|
+
return (0, _getAssets().default)(dependencies, {
|
|
274
|
+
processModuleFilter: config.serializer.processModuleFilter,
|
|
275
|
+
assetPlugins: config.transformer.assetPlugins,
|
|
276
|
+
platform: transformOptions.platform,
|
|
277
|
+
// Forked out of Metro because the `this._getServerRootDir()` doesn't match the development
|
|
278
|
+
// behavior.
|
|
279
|
+
projectRoot: config.projectRoot,
|
|
280
|
+
publicPath: config.transformer.publicPath
|
|
281
|
+
});
|
|
213
282
|
} catch (error) {
|
|
214
283
|
if (isError(error)) {
|
|
215
284
|
// Log using Xcode error format so the errors are picked up by xcodebuild.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/export/embed/exportEmbedAsync.ts"],"sourcesContent":["/**\n * Copyright © 2023 650 Industries.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { getConfig } from '@expo/config';\nimport fs from 'fs';\nimport { sync as globSync } from 'glob';\nimport Server from 'metro/src/Server';\nimport output from 'metro/src/shared/output/bundle';\nimport type { BundleOptions } from 'metro/src/shared/types';\nimport path from 'path';\n\nimport { Options } from './resolveOptions';\nimport { isExecutingFromXcodebuild, logMetroErrorInXcode } from './xcodeCompilerLogger';\nimport { Log } from '../../log';\nimport { loadMetroConfigAsync } from '../../start/server/metro/instantiateMetro';\nimport { getMetroDirectBundleOptionsForExpoConfig } from '../../start/server/middleware/metroOptions';\nimport { stripAnsi } from '../../utils/ansi';\nimport { removeAsync } from '../../utils/dir';\nimport { setNodeEnv } from '../../utils/nodeEnv';\nimport { profile } from '../../utils/profile';\nimport { isEnableHermesManaged } from '../exportHermes';\nimport { getAssets } from '../fork-bundleAsync';\nimport { persistMetroAssetsAsync } from '../persistMetroAssets';\n\nconst debug = require('debug')('expo:export:embed');\n\nfunction guessCopiedAppleBundlePath(bundleOutput: string) {\n // Ensure the path is familiar before guessing.\n if (!bundleOutput.match(/\\/Xcode\\/DerivedData\\/.*\\/Build\\/Products\\//)) {\n debug('Bundling to non-standard location:', bundleOutput);\n return false;\n }\n const bundleName = path.basename(bundleOutput);\n const bundleParent = path.dirname(bundleOutput);\n const possiblePath = globSync(path.join(bundleParent, `*.app/${bundleName}`), {\n // bundle identifiers can start with dots.\n dot: true,\n })[0];\n debug('Possible path for previous bundle:', possiblePath);\n return possiblePath;\n}\n\nexport async function exportEmbedAsync(projectRoot: string, options: Options) {\n setNodeEnv(options.dev ? 'development' : 'production');\n require('@expo/env').load(projectRoot);\n\n // Ensure we delete the old bundle to trigger a failure if the bundle cannot be created.\n await removeAsync(options.bundleOutput);\n\n // The iOS bundle is copied in to the Xcode project, so we need to remove the old one\n // to prevent Xcode from loading the old one after a build failure.\n if (options.platform === 'ios') {\n const previousPath = guessCopiedAppleBundlePath(options.bundleOutput);\n if (previousPath && fs.existsSync(previousPath)) {\n debug('Removing previous iOS bundle:', previousPath);\n await removeAsync(previousPath);\n }\n }\n\n const { bundle, assets } = await exportEmbedBundleAndAssetsAsync(projectRoot, options);\n\n fs.mkdirSync(path.dirname(options.bundleOutput), { recursive: true, mode: 0o755 });\n\n // Persist bundle and source maps.\n await Promise.all([\n output.save(bundle, options, Log.log),\n // NOTE(EvanBacon): This may need to be adjusted in the future if want to support baseUrl on native\n // platforms when doing production embeds (unlikely).\n options.assetsDest\n ? persistMetroAssetsAsync(assets, {\n platform: options.platform,\n outputDirectory: options.assetsDest,\n iosAssetCatalogDirectory: options.assetCatalogDest,\n })\n : null,\n ]);\n}\n\nexport async function createMetroServerAndBundleRequestAsync(\n projectRoot: string,\n options: Pick<\n Options,\n | 'maxWorkers'\n | 'config'\n | 'platform'\n | 'sourcemapOutput'\n | 'sourcemapUseAbsolutePath'\n | 'entryFile'\n | 'minify'\n | 'dev'\n | 'resetCache'\n | 'unstableTransformProfile'\n >\n): Promise<{ server: Server; bundleRequest: BundleOptions }> {\n const exp = getConfig(projectRoot, { skipSDKVersionRequirement: true }).exp;\n\n // TODO: This is slow ~40ms\n const { config } = await loadMetroConfigAsync(\n projectRoot,\n {\n // TODO: This is always enabled in the native script and there's no way to disable it.\n resetCache: options.resetCache,\n\n maxWorkers: options.maxWorkers,\n config: options.config,\n },\n {\n exp,\n isExporting: true,\n getMetroBundler() {\n return server.getBundler().getBundler();\n },\n }\n );\n\n const isHermes = isEnableHermesManaged(exp, options.platform);\n\n let sourceMapUrl = options.sourcemapOutput;\n if (sourceMapUrl && !options.sourcemapUseAbsolutePath) {\n sourceMapUrl = path.basename(sourceMapUrl);\n }\n\n const bundleRequest = {\n ...Server.DEFAULT_BUNDLE_OPTIONS,\n ...getMetroDirectBundleOptionsForExpoConfig(projectRoot, exp, {\n splitChunks: false,\n mainModuleName: resolveRealEntryFilePath(projectRoot, options.entryFile),\n platform: options.platform,\n minify: options.minify,\n mode: options.dev ? 'development' : 'production',\n engine: isHermes ? 'hermes' : undefined,\n bytecode: isHermes,\n isExporting: true,\n }),\n sourceMapUrl,\n unstable_transformProfile: (options.unstableTransformProfile ||\n (isHermes ? 'hermes-stable' : 'default')) as BundleOptions['unstable_transformProfile'],\n };\n\n const server = new Server(config, {\n watch: false,\n });\n\n return { server, bundleRequest };\n}\n\nexport async function exportEmbedBundleAndAssetsAsync(\n projectRoot: string,\n options: Options\n): Promise<{\n bundle: Awaited<ReturnType<Server['build']>>;\n assets: Awaited<ReturnType<typeof getAssets>>;\n}> {\n const { server, bundleRequest } = await createMetroServerAndBundleRequestAsync(\n projectRoot,\n options\n );\n\n try {\n const bundle = await exportEmbedBundleAsync(server, bundleRequest, projectRoot, options);\n const assets = await exportEmbedAssetsAsync(server, bundleRequest, projectRoot, options);\n return { bundle, assets };\n } finally {\n server.end();\n }\n}\n\nexport async function exportEmbedBundleAsync(\n server: Server,\n bundleRequest: BundleOptions,\n projectRoot: string,\n options: Pick<Options, 'platform'>\n) {\n try {\n return await profile(\n server.build.bind(server),\n 'metro-bundle'\n )({\n ...bundleRequest,\n bundleType: 'bundle',\n });\n } catch (error: any) {\n if (isError(error)) {\n // Log using Xcode error format so the errors are picked up by xcodebuild.\n // https://developer.apple.com/documentation/xcode/running-custom-scripts-during-a-build#Log-errors-and-warnings-from-your-script\n if (options.platform === 'ios') {\n // If the error is about to be presented in Xcode, strip the ansi characters from the message.\n if ('message' in error && isExecutingFromXcodebuild()) {\n error.message = stripAnsi(error.message) as string;\n }\n logMetroErrorInXcode(projectRoot, error);\n }\n }\n throw error;\n }\n}\n\nexport async function exportEmbedAssetsAsync(\n server: Server,\n bundleRequest: BundleOptions,\n projectRoot: string,\n options: Pick<Options, 'platform'>\n) {\n try {\n return await getAssets(server, {\n ...bundleRequest,\n bundleType: 'todo',\n });\n } catch (error: any) {\n if (isError(error)) {\n // Log using Xcode error format so the errors are picked up by xcodebuild.\n // https://developer.apple.com/documentation/xcode/running-custom-scripts-during-a-build#Log-errors-and-warnings-from-your-script\n if (options.platform === 'ios') {\n // If the error is about to be presented in Xcode, strip the ansi characters from the message.\n if ('message' in error && isExecutingFromXcodebuild()) {\n error.message = stripAnsi(error.message) as string;\n }\n logMetroErrorInXcode(projectRoot, error);\n }\n }\n throw error;\n }\n}\n\nfunction isError(error: any): error is Error {\n return error instanceof Error;\n}\n\n/**\n * This is a workaround for Metro not resolving entry file paths to their real location.\n * When running exports through `eas build --local` on macOS, the `/var/folders` path is used instead of `/private/var/folders`.\n *\n * See: https://github.com/expo/expo/issues/28890\n */\nfunction resolveRealEntryFilePath(projectRoot: string, entryFile: string): string {\n if (projectRoot.startsWith('/private/var') && entryFile.startsWith('/var')) {\n return fs.realpathSync(entryFile);\n }\n\n return entryFile;\n}\n"],"names":["exportEmbedAsync","createMetroServerAndBundleRequestAsync","exportEmbedBundleAndAssetsAsync","exportEmbedBundleAsync","exportEmbedAssetsAsync","debug","require","guessCopiedAppleBundlePath","bundleOutput","match","bundleName","path","basename","bundleParent","dirname","possiblePath","globSync","join","dot","projectRoot","options","setNodeEnv","dev","load","removeAsync","platform","previousPath","fs","existsSync","bundle","assets","mkdirSync","recursive","mode","Promise","all","output","save","Log","log","assetsDest","persistMetroAssetsAsync","outputDirectory","iosAssetCatalogDirectory","assetCatalogDest","exp","getConfig","skipSDKVersionRequirement","config","loadMetroConfigAsync","resetCache","maxWorkers","isExporting","getMetroBundler","server","getBundler","isHermes","isEnableHermesManaged","sourceMapUrl","sourcemapOutput","sourcemapUseAbsolutePath","bundleRequest","Server","DEFAULT_BUNDLE_OPTIONS","getMetroDirectBundleOptionsForExpoConfig","splitChunks","mainModuleName","resolveRealEntryFilePath","entryFile","minify","engine","undefined","bytecode","unstable_transformProfile","unstableTransformProfile","watch","end","profile","build","bind","bundleType","error","isError","isExecutingFromXcodebuild","message","stripAnsi","logMetroErrorInXcode","getAssets","Error","startsWith","realpathSync"],"mappings":"AAAA;;;;;CAKC,GACD;;;;;;;;;;;IAuCsBA,gBAAgB,MAAhBA,gBAAgB;IAoChBC,sCAAsC,MAAtCA,sCAAsC;IAoEtCC,+BAA+B,MAA/BA,+BAA+B;IAqB/BC,sBAAsB,MAAtBA,sBAAsB;IA8BtBC,sBAAsB,MAAtBA,sBAAsB;;;yBAlMlB,cAAc;;;;;;;8DACzB,IAAI;;;;;;;yBACc,MAAM;;;;;;;8DACpB,kBAAkB;;;;;;;8DAClB,gCAAgC;;;;;;;8DAElC,MAAM;;;;;;qCAGyC,uBAAuB;qBACnE,WAAW;kCACM,2CAA2C;8BACvB,4CAA4C;sBAC3E,kBAAkB;qBAChB,iBAAiB;yBAClB,qBAAqB;yBACxB,qBAAqB;8BACP,iBAAiB;iCAC7B,qBAAqB;oCACP,uBAAuB;;;;;;AAE/D,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,AAAC;AAEpD,SAASC,0BAA0B,CAACC,YAAoB,EAAE;IACxD,+CAA+C;IAC/C,IAAI,CAACA,YAAY,CAACC,KAAK,+CAA+C,EAAE;QACtEJ,KAAK,CAAC,oCAAoC,EAAEG,YAAY,CAAC,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAME,UAAU,GAAGC,KAAI,EAAA,QAAA,CAACC,QAAQ,CAACJ,YAAY,CAAC,AAAC;IAC/C,MAAMK,YAAY,GAAGF,KAAI,EAAA,QAAA,CAACG,OAAO,CAACN,YAAY,CAAC,AAAC;IAChD,MAAMO,YAAY,GAAGC,IAAAA,KAAQ,EAAA,KAAA,EAACL,KAAI,EAAA,QAAA,CAACM,IAAI,CAACJ,YAAY,EAAE,CAAC,MAAM,EAAEH,UAAU,CAAC,CAAC,CAAC,EAAE;QAC5E,0CAA0C;QAC1CQ,GAAG,EAAE,IAAI;KACV,CAAC,CAAC,CAAC,CAAC,AAAC;IACNb,KAAK,CAAC,oCAAoC,EAAEU,YAAY,CAAC,CAAC;IAC1D,OAAOA,YAAY,CAAC;AACtB,CAAC;AAEM,eAAef,gBAAgB,CAACmB,WAAmB,EAAEC,OAAgB,EAAE;IAC5EC,IAAAA,QAAU,WAAA,EAACD,OAAO,CAACE,GAAG,GAAG,aAAa,GAAG,YAAY,CAAC,CAAC;IACvDhB,OAAO,CAAC,WAAW,CAAC,CAACiB,IAAI,CAACJ,WAAW,CAAC,CAAC;IAEvC,wFAAwF;IACxF,MAAMK,IAAAA,IAAW,YAAA,EAACJ,OAAO,CAACZ,YAAY,CAAC,CAAC;IAExC,qFAAqF;IACrF,mEAAmE;IACnE,IAAIY,OAAO,CAACK,QAAQ,KAAK,KAAK,EAAE;QAC9B,MAAMC,YAAY,GAAGnB,0BAA0B,CAACa,OAAO,CAACZ,YAAY,CAAC,AAAC;QACtE,IAAIkB,YAAY,IAAIC,GAAE,EAAA,QAAA,CAACC,UAAU,CAACF,YAAY,CAAC,EAAE;YAC/CrB,KAAK,CAAC,+BAA+B,EAAEqB,YAAY,CAAC,CAAC;YACrD,MAAMF,IAAAA,IAAW,YAAA,EAACE,YAAY,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,MAAM,EAAEG,MAAM,CAAA,EAAEC,MAAM,CAAA,EAAE,GAAG,MAAM5B,+BAA+B,CAACiB,WAAW,EAAEC,OAAO,CAAC,AAAC;IAEvFO,GAAE,EAAA,QAAA,CAACI,SAAS,CAACpB,KAAI,EAAA,QAAA,CAACG,OAAO,CAACM,OAAO,CAACZ,YAAY,CAAC,EAAE;QAAEwB,SAAS,EAAE,IAAI;QAAEC,IAAI,EAAE,GAAK;KAAE,CAAC,CAAC;IAEnF,kCAAkC;IAClC,MAAMC,OAAO,CAACC,GAAG,CAAC;QAChBC,OAAM,EAAA,QAAA,CAACC,IAAI,CAACR,MAAM,EAAET,OAAO,EAAEkB,IAAG,IAAA,CAACC,GAAG,CAAC;QACrC,mGAAmG;QACnG,qDAAqD;QACrDnB,OAAO,CAACoB,UAAU,GACdC,IAAAA,mBAAuB,wBAAA,EAACX,MAAM,EAAE;YAC9BL,QAAQ,EAAEL,OAAO,CAACK,QAAQ;YAC1BiB,eAAe,EAAEtB,OAAO,CAACoB,UAAU;YACnCG,wBAAwB,EAAEvB,OAAO,CAACwB,gBAAgB;SACnD,CAAC,GACF,IAAI;KACT,CAAC,CAAC;AACL,CAAC;AAEM,eAAe3C,sCAAsC,CAC1DkB,WAAmB,EACnBC,OAYC,EAC0D;IAC3D,MAAMyB,GAAG,GAAGC,IAAAA,OAAS,EAAA,UAAA,EAAC3B,WAAW,EAAE;QAAE4B,yBAAyB,EAAE,IAAI;KAAE,CAAC,CAACF,GAAG,AAAC;IAE5E,2BAA2B;IAC3B,MAAM,EAAEG,MAAM,CAAA,EAAE,GAAG,MAAMC,IAAAA,iBAAoB,qBAAA,EAC3C9B,WAAW,EACX;QACE,sFAAsF;QACtF+B,UAAU,EAAE9B,OAAO,CAAC8B,UAAU;QAE9BC,UAAU,EAAE/B,OAAO,CAAC+B,UAAU;QAC9BH,MAAM,EAAE5B,OAAO,CAAC4B,MAAM;KACvB,EACD;QACEH,GAAG;QACHO,WAAW,EAAE,IAAI;QACjBC,eAAe,IAAG;YAChB,OAAOC,MAAM,CAACC,UAAU,EAAE,CAACA,UAAU,EAAE,CAAC;QAC1C,CAAC;KACF,CACF,AAAC;IAEF,MAAMC,QAAQ,GAAGC,IAAAA,aAAqB,sBAAA,EAACZ,GAAG,EAAEzB,OAAO,CAACK,QAAQ,CAAC,AAAC;IAE9D,IAAIiC,YAAY,GAAGtC,OAAO,CAACuC,eAAe,AAAC;IAC3C,IAAID,YAAY,IAAI,CAACtC,OAAO,CAACwC,wBAAwB,EAAE;QACrDF,YAAY,GAAG/C,KAAI,EAAA,QAAA,CAACC,QAAQ,CAAC8C,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED,MAAMG,aAAa,GAAG;QACpB,GAAGC,OAAM,EAAA,QAAA,CAACC,sBAAsB;QAChC,GAAGC,IAAAA,aAAwC,yCAAA,EAAC7C,WAAW,EAAE0B,GAAG,EAAE;YAC5DoB,WAAW,EAAE,KAAK;YAClBC,cAAc,EAAEC,wBAAwB,CAAChD,WAAW,EAAEC,OAAO,CAACgD,SAAS,CAAC;YACxE3C,QAAQ,EAAEL,OAAO,CAACK,QAAQ;YAC1B4C,MAAM,EAAEjD,OAAO,CAACiD,MAAM;YACtBpC,IAAI,EAAEb,OAAO,CAACE,GAAG,GAAG,aAAa,GAAG,YAAY;YAChDgD,MAAM,EAAEd,QAAQ,GAAG,QAAQ,GAAGe,SAAS;YACvCC,QAAQ,EAAEhB,QAAQ;YAClBJ,WAAW,EAAE,IAAI;SAClB,CAAC;QACFM,YAAY;QACZe,yBAAyB,EAAGrD,OAAO,CAACsD,wBAAwB,IAC1D,CAAClB,QAAQ,GAAG,eAAe,GAAG,SAAS,CAAC;KAC3C,AAAC;IAEF,MAAMF,MAAM,GAAG,IAAIQ,CAAAA,OAAM,EAAA,CAAA,QAAA,CAACd,MAAM,EAAE;QAChC2B,KAAK,EAAE,KAAK;KACb,CAAC,AAAC;IAEH,OAAO;QAAErB,MAAM;QAAEO,aAAa;KAAE,CAAC;AACnC,CAAC;AAEM,eAAe3D,+BAA+B,CACnDiB,WAAmB,EACnBC,OAAgB,EAIf;IACD,MAAM,EAAEkC,MAAM,CAAA,EAAEO,aAAa,CAAA,EAAE,GAAG,MAAM5D,sCAAsC,CAC5EkB,WAAW,EACXC,OAAO,CACR,AAAC;IAEF,IAAI;QACF,MAAMS,MAAM,GAAG,MAAM1B,sBAAsB,CAACmD,MAAM,EAAEO,aAAa,EAAE1C,WAAW,EAAEC,OAAO,CAAC,AAAC;QACzF,MAAMU,MAAM,GAAG,MAAM1B,sBAAsB,CAACkD,MAAM,EAAEO,aAAa,EAAE1C,WAAW,EAAEC,OAAO,CAAC,AAAC;QACzF,OAAO;YAAES,MAAM;YAAEC,MAAM;SAAE,CAAC;IAC5B,SAAU;QACRwB,MAAM,CAACsB,GAAG,EAAE,CAAC;IACf,CAAC;AACH,CAAC;AAEM,eAAezE,sBAAsB,CAC1CmD,MAAc,EACdO,aAA4B,EAC5B1C,WAAmB,EACnBC,OAAkC,EAClC;IACA,IAAI;QACF,OAAO,MAAMyD,IAAAA,QAAO,QAAA,EAClBvB,MAAM,CAACwB,KAAK,CAACC,IAAI,CAACzB,MAAM,CAAC,EACzB,cAAc,CACf,CAAC;YACA,GAAGO,aAAa;YAChBmB,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAC;IACL,EAAE,OAAOC,KAAK,EAAO;QACnB,IAAIC,OAAO,CAACD,KAAK,CAAC,EAAE;YAClB,0EAA0E;YAC1E,iIAAiI;YACjI,IAAI7D,OAAO,CAACK,QAAQ,KAAK,KAAK,EAAE;gBAC9B,8FAA8F;gBAC9F,IAAI,SAAS,IAAIwD,KAAK,IAAIE,IAAAA,oBAAyB,0BAAA,GAAE,EAAE;oBACrDF,KAAK,CAACG,OAAO,GAAGC,IAAAA,KAAS,UAAA,EAACJ,KAAK,CAACG,OAAO,CAAC,AAAU,CAAC;gBACrD,CAAC;gBACDE,IAAAA,oBAAoB,qBAAA,EAACnE,WAAW,EAAE8D,KAAK,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,MAAMA,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAEM,eAAe7E,sBAAsB,CAC1CkD,MAAc,EACdO,aAA4B,EAC5B1C,WAAmB,EACnBC,OAAkC,EAClC;IACA,IAAI;QACF,OAAO,MAAMmE,IAAAA,gBAAS,UAAA,EAACjC,MAAM,EAAE;YAC7B,GAAGO,aAAa;YAChBmB,UAAU,EAAE,MAAM;SACnB,CAAC,CAAC;IACL,EAAE,OAAOC,KAAK,EAAO;QACnB,IAAIC,OAAO,CAACD,KAAK,CAAC,EAAE;YAClB,0EAA0E;YAC1E,iIAAiI;YACjI,IAAI7D,OAAO,CAACK,QAAQ,KAAK,KAAK,EAAE;gBAC9B,8FAA8F;gBAC9F,IAAI,SAAS,IAAIwD,KAAK,IAAIE,IAAAA,oBAAyB,0BAAA,GAAE,EAAE;oBACrDF,KAAK,CAACG,OAAO,GAAGC,IAAAA,KAAS,UAAA,EAACJ,KAAK,CAACG,OAAO,CAAC,AAAU,CAAC;gBACrD,CAAC;gBACDE,IAAAA,oBAAoB,qBAAA,EAACnE,WAAW,EAAE8D,KAAK,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,MAAMA,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAASC,OAAO,CAACD,KAAU,EAAkB;IAC3C,OAAOA,KAAK,YAAYO,KAAK,CAAC;AAChC,CAAC;AAED;;;;;CAKC,GACD,SAASrB,wBAAwB,CAAChD,WAAmB,EAAEiD,SAAiB,EAAU;IAChF,IAAIjD,WAAW,CAACsE,UAAU,CAAC,cAAc,CAAC,IAAIrB,SAAS,CAACqB,UAAU,CAAC,MAAM,CAAC,EAAE;QAC1E,OAAO9D,GAAE,EAAA,QAAA,CAAC+D,YAAY,CAACtB,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,OAAOA,SAAS,CAAC;AACnB,CAAC"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/export/embed/exportEmbedAsync.ts"],"sourcesContent":["/**\n * Copyright © 2023 650 Industries.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { getConfig } from '@expo/config';\nimport getMetroAssets from '@expo/metro-config/build/transform-worker/getAssets';\nimport assert from 'assert';\nimport fs from 'fs';\nimport { sync as globSync } from 'glob';\nimport Server from 'metro/src/Server';\nimport splitBundleOptions from 'metro/src/lib/splitBundleOptions';\nimport output from 'metro/src/shared/output/bundle';\nimport type { BundleOptions } from 'metro/src/shared/types';\nimport path from 'path';\n\nimport { Options } from './resolveOptions';\nimport { isExecutingFromXcodebuild, logMetroErrorInXcode } from './xcodeCompilerLogger';\nimport { Log } from '../../log';\nimport { DevServerManager } from '../../start/server/DevServerManager';\nimport { MetroBundlerDevServer } from '../../start/server/metro/MetroBundlerDevServer';\nimport { loadMetroConfigAsync } from '../../start/server/metro/instantiateMetro';\nimport { assertMetroPrivateServer } from '../../start/server/metro/metroPrivateServer';\nimport { getMetroDirectBundleOptionsForExpoConfig } from '../../start/server/middleware/metroOptions';\nimport { stripAnsi } from '../../utils/ansi';\nimport { removeAsync } from '../../utils/dir';\nimport { setNodeEnv } from '../../utils/nodeEnv';\nimport { isEnableHermesManaged } from '../exportHermes';\nimport { persistMetroAssetsAsync } from '../persistMetroAssets';\nimport { BundleAssetWithFileHashes } from '../saveAssets';\n\nconst debug = require('debug')('expo:export:embed');\n\nfunction guessCopiedAppleBundlePath(bundleOutput: string) {\n // Ensure the path is familiar before guessing.\n if (!bundleOutput.match(/\\/Xcode\\/DerivedData\\/.*\\/Build\\/Products\\//)) {\n debug('Bundling to non-standard location:', bundleOutput);\n return false;\n }\n const bundleName = path.basename(bundleOutput);\n const bundleParent = path.dirname(bundleOutput);\n const possiblePath = globSync(path.join(bundleParent, `*.app/${bundleName}`), {\n // bundle identifiers can start with dots.\n dot: true,\n })[0];\n debug('Possible path for previous bundle:', possiblePath);\n return possiblePath;\n}\n\nexport async function exportEmbedAsync(projectRoot: string, options: Options) {\n setNodeEnv(options.dev ? 'development' : 'production');\n require('@expo/env').load(projectRoot);\n\n // Ensure we delete the old bundle to trigger a failure if the bundle cannot be created.\n await removeAsync(options.bundleOutput);\n\n // The iOS bundle is copied in to the Xcode project, so we need to remove the old one\n // to prevent Xcode from loading the old one after a build failure.\n if (options.platform === 'ios') {\n const previousPath = guessCopiedAppleBundlePath(options.bundleOutput);\n if (previousPath && fs.existsSync(previousPath)) {\n debug('Removing previous iOS bundle:', previousPath);\n await removeAsync(previousPath);\n }\n }\n\n const { bundle, assets } = await exportEmbedBundleAndAssetsAsync(projectRoot, options);\n\n fs.mkdirSync(path.dirname(options.bundleOutput), { recursive: true, mode: 0o755 });\n\n // Persist bundle and source maps.\n await Promise.all([\n output.save(bundle, options, Log.log),\n // NOTE(EvanBacon): This may need to be adjusted in the future if want to support baseUrl on native\n // platforms when doing production embeds (unlikely).\n options.assetsDest\n ? persistMetroAssetsAsync(assets, {\n platform: options.platform,\n outputDirectory: options.assetsDest,\n iosAssetCatalogDirectory: options.assetCatalogDest,\n })\n : null,\n ]);\n}\n\nexport async function exportEmbedBundleAndAssetsAsync(\n projectRoot: string,\n options: Options\n): Promise<{\n bundle: Awaited<ReturnType<Server['build']>>;\n assets: readonly BundleAssetWithFileHashes[];\n}> {\n const devServerManager = await DevServerManager.startMetroAsync(projectRoot, {\n minify: options.minify,\n mode: options.dev ? 'development' : 'production',\n port: 8081,\n isExporting: true,\n location: {},\n resetDevServer: options.resetCache,\n maxWorkers: options.maxWorkers,\n });\n\n const devServer = devServerManager.getDefaultDevServer();\n assert(devServer instanceof MetroBundlerDevServer);\n\n const exp = getConfig(projectRoot, { skipSDKVersionRequirement: true }).exp;\n const isHermes = isEnableHermesManaged(exp, options.platform);\n\n let sourceMapUrl = options.sourcemapOutput;\n if (sourceMapUrl && !options.sourcemapUseAbsolutePath) {\n sourceMapUrl = path.basename(sourceMapUrl);\n }\n\n try {\n const bundles = await devServer.legacySinglePageExportBundleAsync(\n {\n splitChunks: false,\n mainModuleName: options.entryFile,\n platform: options.platform,\n minify: options.minify,\n mode: options.dev ? 'development' : 'production',\n engine: isHermes ? 'hermes' : undefined,\n serializerIncludeMaps: !!sourceMapUrl,\n // Never output bytecode in the exported bundle since that is hardcoded in the native run script.\n bytecode: false,\n // source map inline\n reactCompiler: !!exp.experiments?.reactCompiler,\n },\n {\n sourceMapUrl,\n unstable_transformProfile: (options.unstableTransformProfile ||\n (isHermes ? 'hermes-stable' : 'default')) as BundleOptions['unstable_transformProfile'],\n }\n );\n\n return {\n bundle: {\n code: bundles.artifacts.filter((a: any) => a.type === 'js')[0].source.toString(),\n // Can be optional when source maps aren't enabled.\n map: bundles.artifacts.filter((a: any) => a.type === 'map')[0]?.source.toString(),\n },\n assets: bundles.assets,\n };\n } catch (error: any) {\n if (isError(error)) {\n // Log using Xcode error format so the errors are picked up by xcodebuild.\n // https://developer.apple.com/documentation/xcode/running-custom-scripts-during-a-build#Log-errors-and-warnings-from-your-script\n if (options.platform === 'ios') {\n // If the error is about to be presented in Xcode, strip the ansi characters from the message.\n if ('message' in error && isExecutingFromXcodebuild()) {\n error.message = stripAnsi(error.message) as string;\n }\n logMetroErrorInXcode(projectRoot, error);\n }\n }\n throw error;\n } finally {\n devServerManager.stopAsync();\n }\n}\n\n// Exports for expo-updates\nexport async function createMetroServerAndBundleRequestAsync(\n projectRoot: string,\n options: Pick<\n Options,\n | 'maxWorkers'\n | 'config'\n | 'platform'\n | 'sourcemapOutput'\n | 'sourcemapUseAbsolutePath'\n | 'entryFile'\n | 'minify'\n | 'dev'\n | 'resetCache'\n | 'unstableTransformProfile'\n >\n): Promise<{ server: Server; bundleRequest: BundleOptions }> {\n const exp = getConfig(projectRoot, { skipSDKVersionRequirement: true }).exp;\n\n // TODO: This is slow ~40ms\n const { config } = await loadMetroConfigAsync(\n projectRoot,\n {\n // TODO: This is always enabled in the native script and there's no way to disable it.\n resetCache: options.resetCache,\n\n maxWorkers: options.maxWorkers,\n config: options.config,\n },\n {\n exp,\n isExporting: true,\n getMetroBundler() {\n return server.getBundler().getBundler();\n },\n }\n );\n\n const isHermes = isEnableHermesManaged(exp, options.platform);\n\n let sourceMapUrl = options.sourcemapOutput;\n if (sourceMapUrl && !options.sourcemapUseAbsolutePath) {\n sourceMapUrl = path.basename(sourceMapUrl);\n }\n\n const bundleRequest = {\n ...Server.DEFAULT_BUNDLE_OPTIONS,\n ...getMetroDirectBundleOptionsForExpoConfig(projectRoot, exp, {\n splitChunks: false,\n mainModuleName: resolveRealEntryFilePath(projectRoot, options.entryFile),\n platform: options.platform,\n minify: options.minify,\n mode: options.dev ? 'development' : 'production',\n engine: isHermes ? 'hermes' : undefined,\n isExporting: true,\n // Never output bytecode in the exported bundle since that is hardcoded in the native run script.\n bytecode: false,\n }),\n sourceMapUrl,\n unstable_transformProfile: (options.unstableTransformProfile ||\n (isHermes ? 'hermes-stable' : 'default')) as BundleOptions['unstable_transformProfile'],\n };\n\n const server = new Server(config, {\n watch: false,\n });\n\n return { server, bundleRequest };\n}\n\nexport async function exportEmbedAssetsAsync(\n server: Server,\n bundleRequest: BundleOptions,\n projectRoot: string,\n options: Pick<Options, 'platform'>\n) {\n try {\n const { entryFile, onProgress, resolverOptions, transformOptions } = splitBundleOptions({\n ...bundleRequest,\n bundleType: 'todo',\n });\n\n assertMetroPrivateServer(server);\n\n const dependencies = await server._bundler.getDependencies(\n [entryFile],\n transformOptions,\n resolverOptions,\n { onProgress, shallow: false, lazy: false }\n );\n\n const config = server._config;\n\n return getMetroAssets(dependencies, {\n processModuleFilter: config.serializer.processModuleFilter,\n assetPlugins: config.transformer.assetPlugins,\n platform: transformOptions.platform!,\n // Forked out of Metro because the `this._getServerRootDir()` doesn't match the development\n // behavior.\n projectRoot: config.projectRoot, // this._getServerRootDir(),\n publicPath: config.transformer.publicPath,\n });\n } catch (error: any) {\n if (isError(error)) {\n // Log using Xcode error format so the errors are picked up by xcodebuild.\n // https://developer.apple.com/documentation/xcode/running-custom-scripts-during-a-build#Log-errors-and-warnings-from-your-script\n if (options.platform === 'ios') {\n // If the error is about to be presented in Xcode, strip the ansi characters from the message.\n if ('message' in error && isExecutingFromXcodebuild()) {\n error.message = stripAnsi(error.message) as string;\n }\n logMetroErrorInXcode(projectRoot, error);\n }\n }\n throw error;\n }\n}\n\nfunction isError(error: any): error is Error {\n return error instanceof Error;\n}\n\n/**\n * This is a workaround for Metro not resolving entry file paths to their real location.\n * When running exports through `eas build --local` on macOS, the `/var/folders` path is used instead of `/private/var/folders`.\n *\n * See: https://github.com/expo/expo/issues/28890\n */\nfunction resolveRealEntryFilePath(projectRoot: string, entryFile: string): string {\n if (projectRoot.startsWith('/private/var') && entryFile.startsWith('/var')) {\n return fs.realpathSync(entryFile);\n }\n\n return entryFile;\n}\n"],"names":["exportEmbedAsync","exportEmbedBundleAndAssetsAsync","createMetroServerAndBundleRequestAsync","exportEmbedAssetsAsync","debug","require","guessCopiedAppleBundlePath","bundleOutput","match","bundleName","path","basename","bundleParent","dirname","possiblePath","globSync","join","dot","projectRoot","options","setNodeEnv","dev","load","removeAsync","platform","previousPath","fs","existsSync","bundle","assets","mkdirSync","recursive","mode","Promise","all","output","save","Log","log","assetsDest","persistMetroAssetsAsync","outputDirectory","iosAssetCatalogDirectory","assetCatalogDest","devServerManager","DevServerManager","startMetroAsync","minify","port","isExporting","location","resetDevServer","resetCache","maxWorkers","devServer","getDefaultDevServer","assert","MetroBundlerDevServer","exp","getConfig","skipSDKVersionRequirement","isHermes","isEnableHermesManaged","sourceMapUrl","sourcemapOutput","sourcemapUseAbsolutePath","bundles","legacySinglePageExportBundleAsync","splitChunks","mainModuleName","entryFile","engine","undefined","serializerIncludeMaps","bytecode","reactCompiler","experiments","unstable_transformProfile","unstableTransformProfile","code","artifacts","filter","a","type","source","toString","map","error","isError","isExecutingFromXcodebuild","message","stripAnsi","logMetroErrorInXcode","stopAsync","config","loadMetroConfigAsync","getMetroBundler","server","getBundler","bundleRequest","Server","DEFAULT_BUNDLE_OPTIONS","getMetroDirectBundleOptionsForExpoConfig","resolveRealEntryFilePath","watch","onProgress","resolverOptions","transformOptions","splitBundleOptions","bundleType","assertMetroPrivateServer","dependencies","_bundler","getDependencies","shallow","lazy","_config","getMetroAssets","processModuleFilter","serializer","assetPlugins","transformer","publicPath","Error","startsWith","realpathSync"],"mappings":"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"}
|
|
@@ -57,7 +57,6 @@ function resolveOptions(args, parsed) {
|
|
|
57
57
|
assetsDest: args["--assets-dest"],
|
|
58
58
|
unstableTransformProfile: args["--unstable-transform-profile"],
|
|
59
59
|
resetCache: !!parsed.args["--reset-cache"],
|
|
60
|
-
resetGlobalCache: false,
|
|
61
60
|
verbose: (ref4 = args["--verbose"]) != null ? ref4 : _env.env.EXPO_DEBUG,
|
|
62
61
|
config: args["--config"] ? _path().default.resolve(args["--config"]) : undefined,
|
|
63
62
|
dev,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/export/embed/resolveOptions.ts"],"sourcesContent":["import arg from 'arg';\nimport path from 'path';\n\nimport { env } from '../../utils/env';\nimport { CommandError } from '../../utils/errors';\nimport { resolveCustomBooleanArgsAsync } from '../../utils/resolveArgs';\n\nexport interface Options {\n assetsDest?: string;\n assetCatalogDest?: string;\n entryFile: string;\n resetCache: boolean;\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/export/embed/resolveOptions.ts"],"sourcesContent":["import arg from 'arg';\nimport path from 'path';\n\nimport { env } from '../../utils/env';\nimport { CommandError } from '../../utils/errors';\nimport { resolveCustomBooleanArgsAsync } from '../../utils/resolveArgs';\n\nexport interface Options {\n assetsDest?: string;\n assetCatalogDest?: string;\n entryFile: string;\n resetCache: boolean;\n transformer?: string;\n minify?: boolean;\n config?: string;\n platform: string;\n dev: boolean;\n bundleOutput: string;\n bundleEncoding?: string;\n maxWorkers?: number;\n sourcemapOutput?: string;\n sourcemapSourcesRoot?: string;\n sourcemapUseAbsolutePath: boolean;\n verbose: boolean;\n unstableTransformProfile?: string;\n}\n\nfunction assertIsBoolean(val: any): asserts val is boolean {\n if (typeof val !== 'boolean') {\n throw new CommandError(`Expected boolean, got ${typeof val}`);\n }\n}\n\nexport function resolveOptions(\n args: arg.Result<arg.Spec>,\n parsed: Awaited<ReturnType<typeof resolveCustomBooleanArgsAsync>>\n): Options {\n const dev = parsed.args['--dev'] ?? true;\n assertIsBoolean(dev);\n\n const minify = parsed.args['--minify'] ?? !dev;\n assertIsBoolean(minify);\n\n const entryFile = args['--entry-file'];\n if (!entryFile) {\n throw new CommandError(`Missing required argument: --entry-file`);\n }\n const bundleOutput = args['--bundle-output'];\n if (!bundleOutput) {\n throw new CommandError(`Missing required argument: --bundle-output`);\n }\n return {\n entryFile,\n assetCatalogDest: args['--asset-catalog-dest'],\n platform: args['--platform'] ?? 'ios',\n transformer: args['--transformer'],\n // TODO: Support `--dev false`\n // dev: false,\n bundleOutput,\n bundleEncoding: args['--bundle-encoding'] ?? 'utf8',\n maxWorkers: args['--max-workers'],\n sourcemapOutput: args['--sourcemap-output'],\n sourcemapSourcesRoot: args['--sourcemap-sources-root'],\n sourcemapUseAbsolutePath: !!parsed.args['--sourcemap-use-absolute-path'],\n assetsDest: args['--assets-dest'],\n unstableTransformProfile: args['--unstable-transform-profile'],\n resetCache: !!parsed.args['--reset-cache'],\n verbose: args['--verbose'] ?? env.EXPO_DEBUG,\n config: args['--config'] ? path.resolve(args['--config']) : undefined,\n dev,\n minify,\n };\n}\n"],"names":["resolveOptions","assertIsBoolean","val","CommandError","args","parsed","dev","minify","entryFile","bundleOutput","assetCatalogDest","platform","transformer","bundleEncoding","maxWorkers","sourcemapOutput","sourcemapSourcesRoot","sourcemapUseAbsolutePath","assetsDest","unstableTransformProfile","resetCache","verbose","env","EXPO_DEBUG","config","path","resolve","undefined"],"mappings":"AAAA;;;;+BAiCgBA,gBAAc;;aAAdA,cAAc;;;8DAhCb,MAAM;;;;;;qBAEH,iBAAiB;wBACR,oBAAoB;;;;;;AAuBjD,SAASC,eAAe,CAACC,GAAQ,EAA0B;IACzD,IAAI,OAAOA,GAAG,KAAK,SAAS,EAAE;QAC5B,MAAM,IAAIC,OAAY,aAAA,CAAC,CAAC,sBAAsB,EAAE,OAAOD,GAAG,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAEM,SAASF,cAAc,CAC5BI,IAA0B,EAC1BC,MAAiE,EACxD;QACGA,GAAoB;IAAhC,MAAMC,GAAG,GAAGD,CAAAA,GAAoB,GAApBA,MAAM,CAACD,IAAI,CAAC,OAAO,CAAC,YAApBC,GAAoB,GAAI,IAAI,AAAC;IACzCJ,eAAe,CAACK,GAAG,CAAC,CAAC;QAEND,IAAuB;IAAtC,MAAME,MAAM,GAAGF,CAAAA,IAAuB,GAAvBA,MAAM,CAACD,IAAI,CAAC,UAAU,CAAC,YAAvBC,IAAuB,GAAI,CAACC,GAAG,AAAC;IAC/CL,eAAe,CAACM,MAAM,CAAC,CAAC;IAExB,MAAMC,SAAS,GAAGJ,IAAI,CAAC,cAAc,CAAC,AAAC;IACvC,IAAI,CAACI,SAAS,EAAE;QACd,MAAM,IAAIL,OAAY,aAAA,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,MAAMM,YAAY,GAAGL,IAAI,CAAC,iBAAiB,CAAC,AAAC;IAC7C,IAAI,CAACK,YAAY,EAAE;QACjB,MAAM,IAAIN,OAAY,aAAA,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACvE,CAAC;QAIWC,IAAkB,EAKZA,IAAyB,EAQhCA,IAAiB;IAhB5B,OAAO;QACLI,SAAS;QACTE,gBAAgB,EAAEN,IAAI,CAAC,sBAAsB,CAAC;QAC9CO,QAAQ,EAAEP,CAAAA,IAAkB,GAAlBA,IAAI,CAAC,YAAY,CAAC,YAAlBA,IAAkB,GAAI,KAAK;QACrCQ,WAAW,EAAER,IAAI,CAAC,eAAe,CAAC;QAClC,8BAA8B;QAC9B,gBAAgB;QAChBK,YAAY;QACZI,cAAc,EAAET,CAAAA,IAAyB,GAAzBA,IAAI,CAAC,mBAAmB,CAAC,YAAzBA,IAAyB,GAAI,MAAM;QACnDU,UAAU,EAAEV,IAAI,CAAC,eAAe,CAAC;QACjCW,eAAe,EAAEX,IAAI,CAAC,oBAAoB,CAAC;QAC3CY,oBAAoB,EAAEZ,IAAI,CAAC,0BAA0B,CAAC;QACtDa,wBAAwB,EAAE,CAAC,CAACZ,MAAM,CAACD,IAAI,CAAC,+BAA+B,CAAC;QACxEc,UAAU,EAAEd,IAAI,CAAC,eAAe,CAAC;QACjCe,wBAAwB,EAAEf,IAAI,CAAC,8BAA8B,CAAC;QAC9DgB,UAAU,EAAE,CAAC,CAACf,MAAM,CAACD,IAAI,CAAC,eAAe,CAAC;QAC1CiB,OAAO,EAAEjB,CAAAA,IAAiB,GAAjBA,IAAI,CAAC,WAAW,CAAC,YAAjBA,IAAiB,GAAIkB,IAAG,IAAA,CAACC,UAAU;QAC5CC,MAAM,EAAEpB,IAAI,CAAC,UAAU,CAAC,GAAGqB,KAAI,EAAA,QAAA,CAACC,OAAO,CAACtB,IAAI,CAAC,UAAU,CAAC,CAAC,GAAGuB,SAAS;QACrErB,GAAG;QACHC,MAAM;KACP,CAAC;AACJ,CAAC"}
|