mirror of
https://github.com/react/react-native.git
synced 2026-09-28 05:13:06 +08:00
Summary: Pull Request resolved: https://github.com/react/react-native/pull/57718 **Context** Replaces https://github.com/react/react-native/pull/57709, which identified a real bug in 0.87 from the combination of: - https://github.com/react/react-native/pull/57276 - https://github.com/react/react-native/pull/57652 ``` $ npx react-native spm add error Cannot find module '.../node_modules/react-native/scripts/setup-apple-spm' $ npx react-native codegen error Cannot find module '.../node_modules/react-native/scripts/codegen/generate-artifacts-executor' ``` **This diff** - Fix — and exclusively switch to — extensionless imports rather than requiring `.js`. - Update in-repo consumers. The previous single mapping is now an extension-aware mapping: - `./scripts/*` now appends `.js`, so `react-native/scripts/foo` resolves to `foo.js`. - `.sh` and `.rb` stay reachable via explicit `./scripts/*.sh` and `./scripts/*.rb` passthrough patterns. **Impact** - Explicit `react-native/scripts/*.js` specifiers no longer resolve, so JavaScript paths must be imported without an extension. - Files under `scripts/` with extensions other than `.js`, `.sh`, or `.rb` are no longer exposed through `./scripts/*`. - These have no open source consumers. Changelog: [General][Fixed] - (RC4 only, drop for main changelog): `react-native/scripts/*` imports once again expand `.js` extensions [General][Breaking] - Extensionless `react-native/scripts/*` imports are now **mandated**; explicit `.js` import specifiers are rejected. Reviewed By: rubennorte Differential Revision: D113898792 fbshipit-source-id: d72f60be2c08ab97871e336645856c9029e74ae2
@react-native/core-cli-utils
A reference implementation of React Native CLI tooling. This package provides composable, ordered Task objects for common CLI operations including Android Gradle builds, iOS Xcode/CocoaPods workflows, Metro bundling with Hermes support, and cache cleaning.
This is not published to npm. Framework authors can use this code as a starting point for their own CLI tooling, but should not depend on it as a versioned API.
Modules
android— Gradle-based Android build tasks (assemble, build, install)apple— Xcode/CocoaPods-based iOS tasks (bootstrap, build, install)app— Metro bundler tasks (watch mode, bundle mode, Hermes bytecode compilation)clean— Cache-cleaning tasks (Android/Gradle, Metro, npm, Watchman, Yarn, CocoaPods)version— Semver version requirements for platform toolchains (Android NDK/SDK, Xcode, Node, etc.)
Consumers
private/helloworld/— the primary consumer, using Android, iOS, and Metro modulespackages/rn-tester/— uses iOS bootstrap for CocoaPods setup