Skip to content

Conversation

@tido64
Copy link
Collaborator

@tido64 tido64 commented Nov 25, 2025

Summary:

Fixed an ENOENT exception when a dependency does not export package.json, and your repo is set up as a monorepo using pnpm.

Note

This does not fix the actual search algorithm. We shouldn't be using require.main.paths here because it does not point to the correct starting point, the project root.

This change only fixes the case where we cannot find package.json at all.

Changelog:

[GENERAL] [FIXED] - Fixed an ENOENT exception when a dependency does not export package.json, and your repo is set up as a monorepo using pnpm

Test Plan:

Before:

% node node_modules/react-native/scripts/generate-codegen-artifacts.js -p . -o ios -t ios
[Codegen] Analyzing package.json
[Codegen] Could not find generated autolinking output at: /~/packages/app/example/ios/build/generated/autolinking/autolinking.json
[Codegen] Searching for codegen-enabled libraries in the app.
[Codegen] The "codegenConfig" field is not defined in package.json. Assuming there is nothing to generate at the app level.
[Codegen] Could not find generated autolinking output at: /~/packages/app/example/ios/build/generated/autolinking/autolinking.json
[Codegen] Searching for codegen-enabled libraries in the project dependencies.
[Codegen] Found @react-native-webapis/web-storage
[Codegen] Found react-native
[Codegen] Found react-native-safe-area-context
Trying to find `package.json` for `webdriverio` in [
  '/~/node_modules/.store/react-native-virtual-a5dea7d647/package/scripts/node_modules',
  '/~/node_modules/.store/react-native-virtual-a5dea7d647/package/node_modules',
  '/~/node_modules/.store/react-native-virtual-a5dea7d647/node_modules',
  '/~/node_modules/.store/node_modules',
  '/~/node_modules',
  '/node_modules'
]
[Codegen] Error: ENOENT: no such file or directory, open ''
[Codegen] Done.

After:

% node node_modules/react-native/scripts/generate-codegen-artifacts.js -p . -o ios -t ios
[Codegen] Analyzing package.json
[Codegen] Could not find generated autolinking output at: /~/packages/app/example/ios/build/generated/autolinking/autolinking.json
[Codegen] Searching for codegen-enabled libraries in the app.
[Codegen] The "codegenConfig" field is not defined in package.json. Assuming there is nothing to generate at the app level.
[Codegen] Could not find generated autolinking output at: /~/packages/app/example/ios/build/generated/autolinking/autolinking.json
[Codegen] Searching for codegen-enabled libraries in the project dependencies.
[Codegen] Found @react-native-webapis/web-storage
[Codegen] Found react-native
[Codegen] Found react-native-safe-area-context
Trying to find package.json for webdriverio in [
  '/~/node_modules/.store/react-native-virtual-a5dea7d647/package/scripts/node_modules',
  '/~/node_modules/.store/react-native-virtual-a5dea7d647/package/node_modules',
  '/~/node_modules/.store/react-native-virtual-a5dea7d647/node_modules',
  '/~/node_modules/.store/node_modules',
  '/~/node_modules',
  '/node_modules'
]
[Codegen] Searching for codegen-enabled libraries in react-native.config.js
[Codegen] Processing RNWWebStorageSpec
[Codegen] Searching for podspec in the project dependencies.
[Codegen] Supported Apple platforms: ios, macos, visionos for RNWWebStorageSpec
[Codegen] Processing FBReactNativeSpec
[Codegen] Searching for podspec in the project dependencies.
[Codegen] Processing safeareacontext
[Codegen] Searching for podspec in the project dependencies.
[Codegen] Supported Apple platforms: ios, macos, tvos, visionos for safeareacontext
[Codegen] Generating Native Code for RNWWebStorageSpec - ios
[Codegen] Generated artifacts: ios/build/generated/ios/ReactCodegen
[Codegen] [Codegen - FBReactNativeSpec] Skipping iOS code generation for FBReactNativeSpec as it has been generated already.
[Codegen] Generating Native Code for safeareacontext - ios
[Codegen] Generated artifacts: ios/build/generated/ios/ReactCodegen
[Codegen] Generating RCTThirdPartyComponentsProvider.h
[Codegen] Generated artifact: ios/build/generated/ios/ReactCodegen/RCTThirdPartyComponentsProvider.h
[Codegen] Generating RCTThirdPartyComponentsProvider.mm
[Codegen] Generated artifact: ios/build/generated/ios/ReactCodegen/RCTThirdPartyComponentsProvider.mm
[Codegen] Generating RCTModulesProvider.h
[Codegen] Generated artifact: ios/build/generated/ios/ReactCodegen/RCTModuleProviders.h
[Codegen] Generating RCTModuleProviders.mm
[Codegen] Generated artifact: ios/build/generated/ios/ReactCodegen/RCTModuleProviders.mm
[Codegen] Generating RCTAppDependencyProvider
[Codegen] Generated artifact: ios/build/generated/ios/ReactAppDependencyProvider/RCTAppDependencyProvider.h
[Codegen] Generated artifact: ios/build/generated/ios/ReactAppDependencyProvider/RCTAppDependencyProvider.mm
[Codegen] Generated podspec: ios/build/generated/ios/ReactAppDependencyProvider/ReactAppDependencyProvider.podspec
[Codegen] Generated podspec: ios/build/generated/ios/ReactCodegen/ReactCodegen.podspec
[Codegen] Generating Package.swift
[Codegen] Generated artifact: ios/build/generated/ios/Package.swift
[Codegen] Done.

@meta-cla meta-cla bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Nov 25, 2025
@facebook-github-bot facebook-github-bot added the Shared with Meta Applied via automation to indicate that an Issue or Pull Request has been shared with the team. label Nov 25, 2025
@tido64 tido64 requested a review from cipolleschi November 25, 2025 11:05
@meta-codesync
Copy link

meta-codesync bot commented Nov 25, 2025

@cortinico has imported this pull request. If you are a Meta employee, you can view this in D87872496.

@meta-codesync meta-codesync bot closed this in 20550c4 Nov 26, 2025
@facebook-github-bot facebook-github-bot added the Merged This PR has been merged. label Nov 26, 2025
@meta-codesync
Copy link

meta-codesync bot commented Nov 26, 2025

@cortinico merged this pull request in 20550c4.

@tido64 tido64 deleted the tido/fix-autolinking branch November 26, 2025 12:03
react-native-bot pushed a commit that referenced this pull request Dec 2, 2025
Summary:
Fixed an `ENOENT` exception when a dependency does not export `package.json`, and your repo is set up as a monorepo using pnpm.

> [!NOTE]
>
> This does not fix the actual search algorithm. We shouldn't be using `require.main.paths` here because it does not point to the correct starting point, the project root.
>
> This change only fixes the case where we cannot find `package.json` at all.

## Changelog:

[GENERAL] [FIXED] - Fixed an `ENOENT` exception when a dependency does not export `package.json`, and your repo is set up as a monorepo using pnpm

Pull Request resolved: #54665

Test Plan:
**Before:**

```
% node node_modules/react-native/scripts/generate-codegen-artifacts.js -p . -o ios -t ios
[Codegen] Analyzing package.json
[Codegen] Could not find generated autolinking output at: /~/packages/app/example/ios/build/generated/autolinking/autolinking.json
[Codegen] Searching for codegen-enabled libraries in the app.
[Codegen] The "codegenConfig" field is not defined in package.json. Assuming there is nothing to generate at the app level.
[Codegen] Could not find generated autolinking output at: /~/packages/app/example/ios/build/generated/autolinking/autolinking.json
[Codegen] Searching for codegen-enabled libraries in the project dependencies.
[Codegen] Found react-native-webapis/web-storage
[Codegen] Found react-native
[Codegen] Found react-native-safe-area-context
Trying to find `package.json` for `webdriverio` in [
  '/~/node_modules/.store/react-native-virtual-a5dea7d647/package/scripts/node_modules',
  '/~/node_modules/.store/react-native-virtual-a5dea7d647/package/node_modules',
  '/~/node_modules/.store/react-native-virtual-a5dea7d647/node_modules',
  '/~/node_modules/.store/node_modules',
  '/~/node_modules',
  '/node_modules'
]
[Codegen] Error: ENOENT: no such file or directory, open ''
[Codegen] Done.
```

**After:**

```
% node node_modules/react-native/scripts/generate-codegen-artifacts.js -p . -o ios -t ios
[Codegen] Analyzing package.json
[Codegen] Could not find generated autolinking output at: /~/packages/app/example/ios/build/generated/autolinking/autolinking.json
[Codegen] Searching for codegen-enabled libraries in the app.
[Codegen] The "codegenConfig" field is not defined in package.json. Assuming there is nothing to generate at the app level.
[Codegen] Could not find generated autolinking output at: /~/packages/app/example/ios/build/generated/autolinking/autolinking.json
[Codegen] Searching for codegen-enabled libraries in the project dependencies.
[Codegen] Found react-native-webapis/web-storage
[Codegen] Found react-native
[Codegen] Found react-native-safe-area-context
Trying to find package.json for webdriverio in [
  '/~/node_modules/.store/react-native-virtual-a5dea7d647/package/scripts/node_modules',
  '/~/node_modules/.store/react-native-virtual-a5dea7d647/package/node_modules',
  '/~/node_modules/.store/react-native-virtual-a5dea7d647/node_modules',
  '/~/node_modules/.store/node_modules',
  '/~/node_modules',
  '/node_modules'
]
[Codegen] Searching for codegen-enabled libraries in react-native.config.js
[Codegen] Processing RNWWebStorageSpec
[Codegen] Searching for podspec in the project dependencies.
[Codegen] Supported Apple platforms: ios, macos, visionos for RNWWebStorageSpec
[Codegen] Processing FBReactNativeSpec
[Codegen] Searching for podspec in the project dependencies.
[Codegen] Processing safeareacontext
[Codegen] Searching for podspec in the project dependencies.
[Codegen] Supported Apple platforms: ios, macos, tvos, visionos for safeareacontext
[Codegen] Generating Native Code for RNWWebStorageSpec - ios
[Codegen] Generated artifacts: ios/build/generated/ios/ReactCodegen
[Codegen] [Codegen - FBReactNativeSpec] Skipping iOS code generation for FBReactNativeSpec as it has been generated already.
[Codegen] Generating Native Code for safeareacontext - ios
[Codegen] Generated artifacts: ios/build/generated/ios/ReactCodegen
[Codegen] Generating RCTThirdPartyComponentsProvider.h
[Codegen] Generated artifact: ios/build/generated/ios/ReactCodegen/RCTThirdPartyComponentsProvider.h
[Codegen] Generating RCTThirdPartyComponentsProvider.mm
[Codegen] Generated artifact: ios/build/generated/ios/ReactCodegen/RCTThirdPartyComponentsProvider.mm
[Codegen] Generating RCTModulesProvider.h
[Codegen] Generated artifact: ios/build/generated/ios/ReactCodegen/RCTModuleProviders.h
[Codegen] Generating RCTModuleProviders.mm
[Codegen] Generated artifact: ios/build/generated/ios/ReactCodegen/RCTModuleProviders.mm
[Codegen] Generating RCTAppDependencyProvider
[Codegen] Generated artifact: ios/build/generated/ios/ReactAppDependencyProvider/RCTAppDependencyProvider.h
[Codegen] Generated artifact: ios/build/generated/ios/ReactAppDependencyProvider/RCTAppDependencyProvider.mm
[Codegen] Generated podspec: ios/build/generated/ios/ReactAppDependencyProvider/ReactAppDependencyProvider.podspec
[Codegen] Generated podspec: ios/build/generated/ios/ReactCodegen/ReactCodegen.podspec
[Codegen] Generating Package.swift
[Codegen] Generated artifact: ios/build/generated/ios/Package.swift
[Codegen] Done.
```

Reviewed By: cipolleschi

Differential Revision: D87872496

Pulled By: cortinico

fbshipit-source-id: b9da0e1808248cb806a2a8a0ee575566ce027067
@react-native-bot
Copy link
Collaborator

This pull request was successfully merged by @tido64 in ad5e268

When will my fix make it into a release? | How to file a pick request?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Merged This PR has been merged. p: Microsoft Partner: Microsoft Partner Shared with Meta Applied via automation to indicate that an Issue or Pull Request has been shared with the team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants