Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[0.76] Error: Cannot find module '@react-native-community/cli-server-api' #47309

Open
Tracked by #2131
tido64 opened this issue Oct 30, 2024 · 2 comments
Open
Tracked by #2131
Assignees
Labels
0.76 Needs: Author Feedback Needs: Repro This issue could be improved with a clear list of steps to reproduce the issue. p: Microsoft Partner: Microsoft Partner

Comments

@tido64
Copy link
Collaborator

tido64 commented Oct 30, 2024

Description

@react-native/community-cli-plugin currently has a peer dependency on @react-native-community/cli-server-api AND marks it as optional, expecting whoever depends on it to resolve the dependency. In this case, it would be react-native, but react-native does not have a dependency on @react-native-community/cli-server-api. Nor does it forward the dependency (i.e. declare peer dependency). In a monorepos (especially in pnpm setups), this will fail because @react-native-community/cli-server-api does not get installed where @react-native/community-cli-plugin can be expected to find it.

When running react-native config, we get this error:

Error: Cannot find module '@react-native-community/cli-server-api'
  Require stack:
  - /~/node_modules/.store/@react-native-community-cli-plugin-virtual-29d9c8df52/package/dist/commands/start/runServer.js
  - /~/node_modules/.store/@react-native-community-cli-plugin-virtual-29d9c8df52/package/dist/commands/start/index.js
  - /~/node_modules/.store/@react-native-community-cli-plugin-virtual-29d9c8df52/package/dist/index.js
  - /~/node_modules/.store/react-native-virtual-5d869b466d/package/react-native.config.js
  - /~/node_modules/.store/cosmiconfig-virtual-f7d5522c5c/package/dist/loaders.js
  - /~/node_modules/.store/cosmiconfig-virtual-f7d5522c5c/package/dist/defaults.js
  - /~/node_modules/.store/cosmiconfig-virtual-f7d5522c5c/package/dist/index.js
  - /~/node_modules/.store/@react-native-community-cli-config-npm-15.0.0-1758a65588/package/build/readConfigFromDisk.js
  - /~/node_modules/.store/@react-native-community-cli-config-npm-15.0.0-1758a65588/package/build/loadConfig.js
  - /~/node_modules/.store/@react-native-community-cli-config-npm-15.0.0-1758a65588/package/build/index.js
  - /~/node_modules/.store/@react-native-community-cli-npm-15.0.0-2240e43604/package/build/commands/index.js
  - /~/node_modules/.store/@react-native-community-cli-npm-15.0.0-2240e43604/package/build/index.js
  - /~/node_modules/.store/react-native-virtual-5d869b466d/package/cli.js

The result is that neither bundle or start commands get registered.

The correct way to fix this is to make @react-native-community/cli-server-api required again and forward the dependency in react-native. This also means that the template needs to be updated to include this dependency. I'm sure there are other alternatives that I have overlooked.

Steps to reproduce

  1. Clone/check out this branch: chore: bump react-native to 0.76 microsoft/rnx-kit#3409
  2. Run yarn
  3. Apply the following fixes directly under packages/test-app/node_modules/:
  4. Run react-native config inside packages/test-app
  5. Verify that bundle and start are missing

React Native Version

0.76.1

Affected Platforms

Build - MacOS, Build - Windows, Build - Linux

Output of npx react-native info

System:
  OS: macOS 14.7
  CPU: (10) arm64 Apple M1 Max
  Memory: 1.54 GB / 64.00 GB
  Shell:
    version: 3.7.1
    path: /opt/homebrew/bin/fish
Binaries:
  Node:
    version: 20.18.0
    path: /private/var/folders/j0/5zfnwvyd4sb15smylklx03m00000gn/T/xfs-27033e9b/node
  Yarn:
    version: 4.4.0
    path: /private/var/folders/j0/5zfnwvyd4sb15smylklx03m00000gn/T/xfs-27033e9b/yarn
  npm:
    version: 10.8.2
    path: ~/.local/bin/npm
  Watchman:
    version: 2024.09.30.00
    path: /opt/homebrew/bin/watchman
Managers:
  CocoaPods:
    version: 1.14.3
    path: /Users/tido/.gem/bin/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 23.4
      - iOS 17.4
      - macOS 14.4
      - tvOS 17.4
      - visionOS 1.1
      - watchOS 10.4
  Android SDK:
    API Levels:
      - "34"
    Build Tools:
      - 30.0.3
      - 33.0.0
      - 33.0.1
      - 34.0.0
    System Images:
      - android-34 | Google Play ARM 64 v8a
    Android NDK: Not Found
IDEs:
  Android Studio: 2024.1 AI-241.18034.62.2411.12071903
  Xcode:
    version: 15.3/15E204a
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.12
    path: /usr/bin/javac
  Ruby:
    version: 3.3.5
    path: /opt/homebrew/opt/ruby/bin/ruby
npmPackages:
  "@react-native-community/cli":
    installed: 15.0.0
    wanted: ^15.0.0
  react:
    installed: 18.3.1
    wanted: 18.3.1
  react-native:
    installed: 0.76.1
    wanted: ^0.76.0
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: Not found
  newArchEnabled: Not found
iOS:
  hermesEnabled: Not found
  newArchEnabled: false

Stacktrace or Logs

Error: Cannot find module '@react-native-community/cli-server-api'
  Require stack:
  - /~/node_modules/.store/@react-native-community-cli-plugin-virtual-29d9c8df52/package/dist/commands/start/runServer.js
  - /~/node_modules/.store/@react-native-community-cli-plugin-virtual-29d9c8df52/package/dist/commands/start/index.js
  - /~/node_modules/.store/@react-native-community-cli-plugin-virtual-29d9c8df52/package/dist/index.js
  - /~/node_modules/.store/react-native-virtual-5d869b466d/package/react-native.config.js
  - /~/node_modules/.store/cosmiconfig-virtual-f7d5522c5c/package/dist/loaders.js
  - /~/node_modules/.store/cosmiconfig-virtual-f7d5522c5c/package/dist/defaults.js
  - /~/node_modules/.store/cosmiconfig-virtual-f7d5522c5c/package/dist/index.js
  - /~/node_modules/.store/@react-native-community-cli-config-npm-15.0.0-1758a65588/package/build/readConfigFromDisk.js
  - /~/node_modules/.store/@react-native-community-cli-config-npm-15.0.0-1758a65588/package/build/loadConfig.js
  - /~/node_modules/.store/@react-native-community-cli-config-npm-15.0.0-1758a65588/package/build/index.js
  - /~/node_modules/.store/@react-native-community-cli-npm-15.0.0-2240e43604/package/build/commands/index.js
  - /~/node_modules/.store/@react-native-community-cli-npm-15.0.0-2240e43604/package/build/index.js
  - /~/node_modules/.store/react-native-virtual-5d869b466d/package/cli.js

Reproducer

microsoft/rnx-kit#3409

Screenshots and Videos

No response

@react-native-bot react-native-bot added Needs: Author Feedback Needs: Repro This issue could be improved with a clear list of steps to reproduce the issue. labels Oct 30, 2024
@react-native-bot
Copy link
Collaborator

⚠️ Missing Reproducible Example
ℹ️ We could not detect a reproducible example in your issue report. Please provide either:
  • If your bug is UI related: a Snack
  • If your bug is build/update related: use our Reproducer Template. A reproducer needs to be in a GitHub repository under your username.

@react-native-bot
Copy link
Collaborator

⚠️ Missing Reproducible Example
ℹ️ We could not detect a reproducible example in your issue report. Please provide either:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0.76 Needs: Author Feedback Needs: Repro This issue could be improved with a clear list of steps to reproduce the issue. p: Microsoft Partner: Microsoft Partner
Projects
None yet
Development

No branches or pull requests

6 participants