mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-24 04:16:00 +08:00
Add --maxWorkers flag and allow transformers to run in-band.
Summary: This diff cleans up some cruft and adds some features: * It removes the usage of an env variable to control workers. * It removes the lazy and handwavy calculation on how many workers to use for jest-haste-map. Jest itself uses the maximum amount of workers available and it has never been reported as an issue – especially since it is a one-time startup cost of about 3 seconds on a cold cache only. * It adds a `--max-workers` flag to replace the env variable. This one is able to control both the number of workers for `jest-haste-map` as well as the transformers. * It makes the transformers run in the parent process if 1 or fewer workers are are specified. This should help with debugging. Once you approve this diff, I will publish a new version of metro to npm and update the version used in RN and remove the use of the env variable altogether: https://our.intern.facebook.com/intern/biggrep/?corpus=xplat&filename=&case=false&view=default&extre=&s=REACT_NATIVE_MAX_WORKERS&engine=apr_strmatch&context=false&filter[uninteresting]=false&filter[intern]=false&filter[test]=false&grep_regex= Note: the process of adding a CLI option is really broken. Commander also has a weird API. We should consider building a better public API for Metro and then consider how to build a new CLI on top of it and simplify our internal integration. I really don't like how Metro is integrated across pieces of the RN cli in ways that is hard to manage. But that is a larger task for another time :) Reviewed By: jeanlauliac Differential Revision: D5217726 fbshipit-source-id: 74efddbb87755a9e744c816fbc62efa21f6a79bf
This commit is contained in:
committed by
Facebook Github Bot
parent
f7044419be
commit
29d9c35e12
@@ -13,7 +13,7 @@
|
||||
|
||||
const log = require('../util/log').out('bundle');
|
||||
const Server = require('metro-bundler/build/Server');
|
||||
const Terminal = require('metro-bundler/build/lib/TerminalClass');
|
||||
const Terminal = require('metro-bundler/build/lib/Terminal');
|
||||
const TerminalReporter = require('metro-bundler/build/lib/TerminalReporter');
|
||||
const TransformCaching = require('metro-bundler/build/lib/TransformCaching');
|
||||
|
||||
@@ -38,6 +38,7 @@ function buildBundle(
|
||||
args: OutputOptions & {
|
||||
assetsDest: mixed,
|
||||
entryFile: string,
|
||||
maxWorkers: number,
|
||||
resetCache: boolean,
|
||||
transformer: string,
|
||||
},
|
||||
@@ -89,6 +90,7 @@ function buildBundle(
|
||||
getTransformOptions: config.getTransformOptions,
|
||||
globalTransformCache: null,
|
||||
hasteImpl: config.hasteImpl,
|
||||
maxWorkers: args.maxWorkers,
|
||||
platforms: defaultPlatforms.concat(platforms),
|
||||
postMinifyProcess: config.postMinifyProcess,
|
||||
postProcessModules: config.postProcessModules,
|
||||
|
||||
@@ -31,6 +31,12 @@ module.exports = [
|
||||
command: '--bundle-encoding [string]',
|
||||
description: 'Encoding the bundle should be written in (https://nodejs.org/api/buffer.html#buffer_buffer).',
|
||||
default: 'utf8',
|
||||
}, {
|
||||
command: '--max-workers [number]',
|
||||
description: 'Specifies the maximum number of workers the worker-pool ' +
|
||||
'will spawn for transforming files. This defaults to the number of the ' +
|
||||
'cores available on your machine.',
|
||||
parse: (workers: string) => Number(workers),
|
||||
}, {
|
||||
command: '--sourcemap-output [string]',
|
||||
description: 'File name where to store the sourcemap file for resulting bundle, ex. /tmp/groups.map',
|
||||
|
||||
Reference in New Issue
Block a user