Fixes various issues on the Metro CLI

Reviewed By: rafeca

Differential Revision: D6407718

fbshipit-source-id: 871dd77fad4fcf8f6b0fa628bacc0dfb6cb51484
This commit is contained in:
Maël Nison 2017-11-27 04:11:03 -08:00 committed by Facebook Github Bot
parent 319220d870
commit 167bda72b0
2 changed files with 7 additions and 3 deletions

View File

@ -27,6 +27,8 @@ import type {TransformVariants} from './ModuleGraph/types.flow';
import type {HasteImpl} from './node-haste/Module'; import type {HasteImpl} from './node-haste/Module';
export type ConfigT = { export type ConfigT = {
assetRegistryPath: string,
extraNodeModules: {[id: string]: string}, extraNodeModules: {[id: string]: string},
/** /**
* Specify any additional asset file extensions to be used by the packager. * Specify any additional asset file extensions to be used by the packager.
@ -140,6 +142,7 @@ export type ConfigT = {
}; };
const DEFAULT = ({ const DEFAULT = ({
assetRegistryPath: 'missing-asset-registry-path',
extraNodeModules: {}, extraNodeModules: {},
assetTransforms: false, assetTransforms: false,
getAssetExts: () => [], getAssetExts: () => [],

View File

@ -74,7 +74,7 @@ async function asyncRealpath(path): Promise<string> {
async function runMetro({ async function runMetro({
config, config,
maxWorkers = 1, maxWorkers = 1,
projectRoots, projectRoots = [],
watch = false, watch = false,
}: PrivateMetroOptions) { }: PrivateMetroOptions) {
const normalizedConfig = config ? normalizeConfig(config) : DEFAULT_CONFIG; const normalizedConfig = config ? normalizeConfig(config) : DEFAULT_CONFIG;
@ -97,7 +97,7 @@ async function runMetro({
const serverOptions: ServerOptions = { const serverOptions: ServerOptions = {
assetExts: defaultAssetExts.concat(assetExts), assetExts: defaultAssetExts.concat(assetExts),
assetRegistryPath: `invalid`, assetRegistryPath: normalizedConfig.assetRegistryPath,
blacklistRE: normalizedConfig.getBlacklistRE(), blacklistRE: normalizedConfig.getBlacklistRE(),
extraNodeModules: normalizedConfig.extraNodeModules, extraNodeModules: normalizedConfig.extraNodeModules,
getPolyfills: normalizedConfig.getPolyfills, getPolyfills: normalizedConfig.getPolyfills,
@ -237,12 +237,13 @@ exports.runBuild = async (options: RunBuildOptions) => {
const metroBundle = await MetroBundler.build(metroServer, requestOptions); const metroBundle = await MetroBundler.build(metroServer, requestOptions);
const outputOptions: OutputOptions = { const outputOptions: OutputOptions = {
bundleOutput: options.out, bundleOutput: options.out.replace(/(\.js)?$/, '.js'),
dev: options.dev, dev: options.dev,
platform: options.platform || `web`, platform: options.platform || `web`,
}; };
await MetroBundler.save(metroBundle, outputOptions, console.log); await MetroBundler.save(metroBundle, outputOptions, console.log);
await metroServer.end();
return {metroServer, metroBundle}; return {metroServer, metroBundle};
}; };