我们有两个repos,两个都有react-native
作为依赖项;一个是实际的RN应用程序,另一个是包含许多自定义react-native组件的UI包。
当我使用RN应用程序符号链接(使用npm link
)UI包并尝试启动js服务器时,它会抛出以下错误:
This error is caused by a @providesModule declaration with the same name across two different files.
这似乎是因为它在UI包的react-native
副本中拾取了相同的RN文件。
我知道守望者没有使用符号链接存在问题,但我认为这是不同的 - 与两个react-native
模块有关。有没有人知道如何解决这个问题?我确保两者都是相同的版本号,但仍然没有。
答案 0 :(得分:12)
这也一直在摧毁我的一天。作为一种快速解决方法,您可以在react-native-router-flux中删除node_modules文件夹中的react-native文件夹。(node_modules> react-native-router-flux> node_modules> react -native )丑陋,但至少会让你暂时保持正常运行
答案 1 :(得分:0)
当您在依赖关系树中有两个相同命名的模块时会发生这种情况,通常是因为您有两个包含@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
副本,所以他不得不手动删除它 - 这个错误在repo所有者身上。令人高兴的是,他们已经解决了issue。