我们有两个存储库,它们都react-native
作为依赖项;一个是实际的RN应用程序,另一个是包含许多自定义反应本机组件的UI包。
当我将 UI 包与 RN 应用程序进行符号链接(使用 npm link
(并尝试启动 js 服务器时,它会抛出以下错误:
This error is caused by a @providesModule declaration with the same name across two different files.
这似乎是因为它在 UI 包的 react-native
副本中选取相同的 RN 文件。
我知道守望者不使用符号链接存在问题,但我认为这是不同的 - 与有两个react-native
模块有关。有谁知道解决这个问题的方法吗?我已经确保两者都是相同的版本号,但仍然没有。
这也毁了我的一天。 作为一种快速解决方法,您可以在 React-native-router-flux 中的 node_modules 文件夹中删除 React-native 的文件夹。node_modules> 反应原生路由器通量> node_modules>反应原生(丑陋,但至少会让你暂时启动并运行
当您的依赖树中有两个同名模块时,就会发生这种情况,通常是因为您有两个具有@providesModule
声明的包副本(通常react-native
,似乎(。一个完整的示例错误:
This warning is caused by a @providesModule declaration with the same name across two different files.
jest-haste-map: @providesModule naming collision:
Duplicate module name: yargs
Paths:
/Users/me/Documents/git/MyProject/node_modules/react-native-macos/node_modules/yargs/package.json collides with:
/Users/me/Documents/git/MyProject/node_modules/react-native/node_modules/yargs/package.json
这是我在 React Native 的一个分支上工作的症状,react-native-macos
,但已将react-native
安装到同一个存储库中。
就我而言,我只需要卸载我自己安装的react-native
即可继续;在@Hafiz的情况下,他的react-native-router-flux
依赖项在内部捆绑了自己的react-native
副本,所以他不得不手动删除它——这个错误在于存储库所有者。令人高兴的是,他们已经解决了这个问题。