mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
7853b06929
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/41219 Bump to the latest Metro release. This includes minor breaking changes to Metro subpackages that should *not* be visible to RN users. Metro release notes: https://github.com/facebook/metro/releases/tag/v0.80.0 ## Moving to unpinned versioning Metro is a multi-package project, and not pinning to an exact version means multiple versions of `metro*` packages may appear in an RN project. This isn't unusual in the NPM ecosystem and *shouldn't* be a problem, but historically has caused issues (eg https://github.com/facebook/react-native/issues/34714, https://github.com/facebook/metro/issues/1017). The root cause of all of these issues, as far as we know, was fixed in https://github.com/facebook/metro/commit/6d46078e74ae9a43aa90bed46dbd6610e2696cd0, a bug where Node hierarchical resolution was effectively sidestepped via a relative worker path, resulting in a mismatch between transformer and host process. In addition, the fact that `react-refresh`, `metro-react-native-babel-transformer` and `metro-react-native-babel-preset` are now fully moved into the `react-native/` scope and versioned with React Native means there are no circular dependencies between React Native and Metro, explicit or implicit, and we're much more clearly decoupled. So, we're moving to caret versioning to allow React Native users to pick up Metro fixes and features without requiring React Native releases and user upgrades. Changelog: [General][Changed] - Update Metro to ^v0.80.0, stop pinning to an exact version Reviewed By: GijsWeterings Differential Revision: D50731999 fbshipit-source-id: 57b07bf73c0b31f392c4d36376ca48b48a8bd598
@react-native/community-cli-plugin
This is an internal dependency of React Native. Please don't depend on it directly.
CLI entry points supporting core React Native development features.
Formerly @react-native-community/cli-plugin-metro.
Commands
start
Start the React Native development server.
Usage
npx react-native start [options]
Options
| Option | Description |
|---|---|
--port <number> |
Set the server port. |
--host <string> |
Set the server host. |
--projectRoot <path> |
Set the path to the project root. |
--watchFolders <list> |
Specify additional folders to be added to the watch list. |
--assetPlugins <list> |
Specify additional asset plugins. |
--sourceExts <list> |
Specify additional source extensions to bundle. |
--max-workers <number> |
Set the maximum number of workers the worker-pool will spawn for transforming files. Defaults to the number of the cores available on your machine. |
--transformer <string> |
Specify a custom transformer. |
--reset-cache |
Remove cached files. |
--custom-log-reporter-path <string> |
Specify a module path exporting a replacement for TerminalReporter. |
--https |
Enable HTTPS connections. |
--key <path> |
Specify path to a custom SSL key. |
--cert <path> |
Specify path to a custom SSL cert. |
--config <string> |
Path to the CLI configuration file. |
--no-interactive |
Disable interactive mode. |
bundle
Build the bundle for the provided JavaScript entry file.
Usage
npx react-native bundle --entry-file <path> [options]
Options
| Option | Description |
|---|---|
--entry-file <path> |
Set the path to the root JavaScript entry file. |
--platform <string> |
Set the target platform (either "android" or "ios"). Defaults to "ios". |
--transformer <string> |
Specify a custom transformer. |
--dev [boolean] |
If false, warnings are disabled and the bundle is minified. Defaults to true. |
--minify [boolean] |
Allows overriding whether bundle is minified. Defaults to false if --dev is set. Disabling minification can be useful for speeding up production builds for testing purposes. |
--bundle-output <string> |
Specify the path to store the resulting bundle. |
--bundle-encoding <string> |
Specify the encoding for writing the bundle (https://nodejs.org/api/buffer.html#buffer_buffer). |
--sourcemap-output <string> |
Specify the path to store the source map file for the resulting bundle. |
--sourcemap-sources-root <string> |
Set the root path for source map entries. |
--sourcemap-use-absolute-path |
Report SourceMapURL using its full path. |
--max-workers <number> |
Set the maximum number of workers the worker-pool will spawn for transforming files. Defaults to the number of the cores available on your machine. |
--assets-dest <string> |
Specify the directory path for storing assets referenced in the bundle. |
--reset-cache |
Remove cached files. |
--read-global-cache |
Attempt to fetch transformed JS code from the global cache, if configured. Defaults to false. |
--config <string> |
Path to the CLI configuration file. |
ram-bundle
Build the RAM bundle for the provided JavaScript entry file.
Usage
npx react-native ram-bundle --entry-file <path> [options]
Options
Accepts all options supported by bundle and the following:
| Option | Description |
|---|---|
--indexed-ram-bundle |
Force the "Indexed RAM" bundle file format, even when building for Android. |
Contributing
Changes to this package can be made locally and tested against the rn-tester app, per the Contributing guide. During development, this package is automatically run from source with no build step.