1import { Options } from './resolveOptions'; 2import { loadMetroConfigAsync } from '../../start/server/metro/instantiateMetro'; 3import { importCliBuildBundleWithConfigFromProject } from '../../start/server/metro/resolveFromProject'; 4import { setNodeEnv } from '../../utils/nodeEnv'; 5 6export async function exportEmbedAsync(projectRoot: string, options: Options) { 7 setNodeEnv(options.dev ? 'development' : 'production'); 8 require('@expo/env').load(projectRoot); 9 10 const { config } = await loadMetroConfigAsync(projectRoot, { 11 maxWorkers: options.maxWorkers, 12 resetCache: options.resetCache, 13 config: options.config, 14 }); 15 16 const buildBundleWithConfig = importCliBuildBundleWithConfigFromProject(projectRoot); 17 18 // Import the internal `buildBundleWithConfig()` function from `react-native` for the purpose 19 // of exporting with `@expo/metro-config` and other defaults like a resolved project entry. 20 await buildBundleWithConfig(options, config); 21} 22