feat: autolink native peer dependencies #2727
Open
+232
−41
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Add opt-in support for autolinking native peer dependencies (closes #870). At the moment the CLI only autolinks packages that are listed directly in an app’s
package.json, so native peers declared by a library remain invisible unless every app developer installs them manually. This change introduces adependency.autolinkTransitiveDependenciesflag that a library can set in itsreact-native.config.js. When enabled, the CLI reads the library’s own package.json, discovers its peer dependencies, and links any native peers that are already present in node_modules.The approach stays entirely inside the autolinking pipeline unlike PR #2054’s
--dependency-check, which mutates app dependencies so it avoids surprise installs, CI failures, and extra workflow steps. Once a library opts in, every app automatically benefits. The updates touch the config loader, schema, public types, documentation, and addloadConfigAsynctest coverage.Test Plan
yarn test packages/cli-config/src/__tests__/index-test.tsChecklist
react-nativecheckout (instructions).