首页 文章

React Native Duplicate模块命名冲突

提问于
浏览
5

当我将特定的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-native-stripe-api / package.json中将特定版本的react和react-native模块定义为依赖项:

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

似乎应该删除这些 .

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

2 回答

  • 6

    您的评估是正确的

    对npm有更多了解的人可以确认这实际上是定义节点依赖关系的正确方法 .

    他们应该引用 react 作为peerDependencies

    以及解决问题的适当解决方案 .

    Quickfix: 删除额外的反应版本

    Longfix: Submit a pull request作为peer dependency做出反应

  • 0

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

相关问题