in packages/metro-config/src/loadConfig.js [197:260]
function overrideConfigWithArguments(
config: ConfigT,
argv: YargArguments,
): ConfigT {
// We override some config arguments here with the argv
const output: InputConfigT = {
resolver: {},
serializer: {},
server: {},
transformer: {},
};
if (argv.port != null) {
output.server.port = Number(argv.port);
}
if (argv.runInspectorProxy != null) {
output.server.runInspectorProxy = Boolean(argv.runInspectorProxy);
}
if (argv.projectRoot != null) {
output.projectRoot = argv.projectRoot;
}
if (argv.watchFolders != null) {
output.watchFolders = argv.watchFolders;
}
if (argv.assetExts != null) {
output.resolver.assetExts = argv.assetExts;
}
if (argv.sourceExts != null) {
output.resolver.sourceExts = argv.sourceExts;
}
if (argv.platforms != null) {
output.resolver.platforms = argv.platforms;
}
if (argv['max-workers'] != null || argv.maxWorkers != null) {
output.maxWorkers = Number(argv['max-workers'] || argv.maxWorkers);
}
if (argv.transformer != null) {
output.transformer.babelTransformerPath = argv.transformer;
}
if (argv['reset-cache'] != null) {
output.resetCache = argv['reset-cache'];
}
if (argv.resetCache != null) {
output.resetCache = argv.resetCache;
}
if (argv.verbose === false) {
output.reporter = {update: () => {}};
// TODO: Ask if this is the way to go
}
return mergeConfig(config, output);
}