mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
d03c0f965e
Summary: Move FBReactNativeSpec codegen invocation to shared `react_native_pods.rb` script and trigger codegen to run as part of `pod install` in both RNTester as well as React Native for iOS projects. These files need to be generated before CocoaPods generates the Pods project, so the codegen is invoked as part of a `pre_install` hook during `pod install`. The codegen hook can now take optional paths to allow it to run within different contexts (as part of a `react-native` repo checkout with access to the codegen source, or as part of a React Native iOS project that depends on the `react-native-codegen` npm package). ## Motivation The FBReactNativeSpec ObjC++ source files (FBReactNativeSpec.h and FBReactNativeSpec-generated.mm) can be generated on demand from the native module specs in `Libraries/` using `react-native-codegen`. They can therefore be removed from the repository, but before we do so, we must ensure they get generated when a React Native iOS workspace is created or updated. Invoking the codegen as part of the `pod install` step that creates a React Native iOS Xcode workspace ensures the specs are available in the following scenarios: * Whenever a new React Native iOS project is created. The `react-native init` command invokes `pod install`. * Whenever a React Native iOS project is upgraded. The `react-native upgrade` command invokes `pod install` as well. * For contributors to the open source project running the RNTester application, the codegen will be invoked when the RNTester workspace is generated by CocoaPods using `pod install` in `packages/rn-tester`. In any other case, the codegen can still be invoked directly via `scripts/generate-native-modules-specs.sh`. > **Note:** > The codegen will only process native modules in React Native's own Libraries directory. Changelog: [iOS][Changed] - Generate FBReactNativeSpec ObjC++ source files using CocoaPods. Reviewed By: fkgozali Differential Revision: D24348111 fbshipit-source-id: d62ae5c6f8ce6358bf96a2801c3cdb3d94dd868d
31 lines
714 B
JSON
31 lines
714 B
JSON
{
|
|
"name": "HelloWorld",
|
|
"version": "0.0.1",
|
|
"private": true,
|
|
"scripts": {
|
|
"android": "react-native run-android",
|
|
"ios": "react-native run-ios",
|
|
"start": "react-native start",
|
|
"test": "jest",
|
|
"lint": "eslint ."
|
|
},
|
|
"dependencies": {
|
|
"react": "16.13.1",
|
|
"react-native": "1000.0.0"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/core": "^7.8.4",
|
|
"@babel/runtime": "^7.8.4",
|
|
"@react-native-community/eslint-config": "^1.1.0",
|
|
"babel-jest": "^25.1.0",
|
|
"eslint": "^6.5.1",
|
|
"jest": "^25.1.0",
|
|
"metro-react-native-babel-preset": "^0.63.0",
|
|
"react-test-renderer": "16.13.1",
|
|
"react-native-codegen": "0.0.4"
|
|
},
|
|
"jest": {
|
|
"preset": "react-native"
|
|
}
|
|
}
|