当我将特定的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知识的人可以确认这实际上是定义节点依赖关系的正确方法。以及解决问题的适当解决方案。
答案 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