React Native Duplicate模块命名冲突

时间:2016-08-01 01:31:44

标签: reactjs npm react-native

当我将特定的npm包安装到我的react本机项目并尝试运行它时,我收到以下错误:

This error is caused by a @providesModule declaration with the same name accross two different files.
Error: @providesModule naming collision:
Duplicate module name: promiseRejectionIsError
Paths:

projectname/node_modules/react-native-stripe-api/node_modules/react-native/Libraries/promiseRejectionIsError.js collides with

projectname/node_modules/react-native/Libraries/promiseRejectionIsError.js

问题:这个包react-native-stripe-api似乎正在安装另一个与所有项目模块冲突的react和react-native模块。

我认为原因是因为react和react-native模块的特定版本被定义为react-native-stripe-api / package.json中的依赖项:

  "dependencies": {
    "babel-polyfill": "6.9.1",
    "react": "15.1.0",
    "react-native": "0.27.2"
  },

似乎应该删除这些。

有更多关于npm知识的人可以确认这实际上是定义节点依赖关系的正确方法。以及解决问题的适当解决方案。

2 个答案:

答案 0 :(得分:6)

您的评估是正确的

  

有更多关于npm知识的人可以确认这实际上是定义节点依赖关系的正确方法。

他们应将react引用为peerDependencies

  

解决问题的适当解决方案。

Quickfix:删除额外的反应版本

修补程序 Submit a pull request作为peer dependency的反应

答案 1 :(得分:0)

您应该删除node_modules文件夹,然后执行npm cache clean,确保项目根文件夹下没有临时缓存文件或文件夹(如react-native-packager-cache-81b2c446等),并且然后重新执行npm install