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

[RN 0.49] React inside app's local package either doesn't exist, or multiple copies loaded #16316

Closed
fungilation opened this issue Oct 11, 2017 · 2 comments
Labels
Ran Commands One of our bots successfully processed a command. Resolution: Locked This issue was locked by the bot.

Comments

@fungilation
Copy link

Reposting facebook/metro#74 as this involves React not being resolved and maybe a RN issue?


Do you want to request a feature or report a bug?

Bug. I'm not sure if I should file this with React Native instead/in addition, but since the errors I encounter since upgrading from RN 0.48 to 0.49 are all bundling errors in cli, here it is.

What is the current behavior?

From yarn outdated of my local package:

react-native-webview-bridge       0.33.0        exotic        exotic dependencies ../react-native-webview-bridge-RN0.40

With RN up to 0.48, my app's inclusion and import of react-native-webview-bridge like above works without issue. The package has no dependency itself of react.

Since upgrading to RN 0.49.3, this bundling error occurs on running react-native run-ios:

Unable to resolve module `react` from [package index]: Module does not exist in the module map

screenshot 2017-10-10 17 11 21

Then I added react as a dependency in package.json, like so:

  "devDependencies": {
    "react": "16.0.0-beta.5"
  },

Bundler will then error on Invariant violation: ... You may have multiple copies of React loaded.

screenshot 2017-10-10 17 21 23

screenshot 2017-10-10 17 21 37

A bit of a damned if I do, damned if I don't on getting react dependency in inside the package? Either none found, or there's 2 copies.

I made a hack fix as workaround around both errors, by replacing all instances inside the package of

var React = require('react');

with

var React = require('[HOMEDIR]/Documents/code/[PROJECT]/node_modules/react');

I hardcoded the react path to the exact copy of react my main app (PROJECT) imports, which avoids not able to resolve module react. I have to alter a sub module inside the package too: react-native-webview-bridge-RN0.40/node_modules/create-react-class/index.js which imports React, which makes this doubly hacky and prone to overwritten.

If there's a less dirty workaround, I'm all ears.

What is the expected behavior?

react not needed as a dependency in a local package (my fork of https://github.com/alinz/react-native-webview-bridge), nor is my hack fix needed to import directly from main app's node_modules/, and bundling goes through without error when react-native run-ios is run.

$ react-native info

Environment:
  OS:  macOS Sierra 10.12.6
  Node:  8.6.0
  Yarn:  1.2.0
  npm:  5.3.0
  Watchman:  4.9.0
  Xcode:  Xcode 9.0 Build version 9A235
  Android Studio:  Not Found

Packages: (wanted => installed)
  react: 16.0.0-beta.5 => 16.0.0-beta.5
  react-native: 0.49.3 => 0.49.3
@react-native-bot
Copy link
Collaborator

@facebook-github-bot no-template

@facebook-github-bot
Copy link
Contributor

Hey, thanks for reporting this issue! It looks like your description is missing some necessary information, or the list of reproduction steps is not complete. Can you please add all the details specified in the Issue Template? This is necessary for people to be able to understand and reproduce the issue being reported. I am going to close this, but feel free to open a new issue with the additional information provided. Thanks! See "What to Expect from Maintainers" to learn more.

@facebook-github-bot facebook-github-bot added the Ran Commands One of our bots successfully processed a command. label Oct 11, 2017
@facebook facebook locked as resolved and limited conversation to collaborators Oct 11, 2018
@react-native-bot react-native-bot added the Resolution: Locked This issue was locked by the bot. label Oct 11, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Ran Commands One of our bots successfully processed a command. Resolution: Locked This issue was locked by the bot.
Projects
None yet
Development

No branches or pull requests

3 participants