React-Native Packager 失败:模块名称重复

React-Native Packager Failure: Duplicate module name

这似乎是在开发过程中随机发生的。尝试 运行 npm startreact-native run-ios 时,出现以下错误:

Failed to build DependencyGraph: @providesModule naming collision:
  Duplicate module name: react-native-vector-icons
  Paths: /Users/chandlervdw/Repos/Relay/mobile/node_modules/react-native/local-cli/rnpm/core/test/fixtures/files/package.json collides with /Users/chandlervdw/Repos/Relay/mobile/node_modules/react-native/Libraries/Animated/release/package.json

This error is caused by a @providesModule declaration with the same name accross two different files.
Error: @providesModule naming collision:
  Duplicate module name: react-native-vector-icons
  Paths: /Users/chandlervdw/Repos/Relay/mobile/node_modules/react-native/local-cli/rnpm/core/test/fixtures/files/package.json collides with /Users/chandlervdw/Repos/Relay/mobile/node_modules/react-native/Libraries/Animated/release/package.json

This error is caused by a @providesModule declaration with the same name accross two different files.
    at HasteMap._updateHasteMap (/Users/chandlervdw/Repos/Relay/mobile/node_modules/node-haste/lib/DependencyGraph/HasteMap.js:162:15)
    at /Users/chandlervdw/Repos/Relay/mobile/node_modules/node-haste/lib/DependencyGraph/HasteMap.js:140:25

奇怪的是,/Users/chandlervdw/Repos/Relay/mobile/node_modules/react-native/local-cli/rnpm/core/test/fixtures/files/package.json 实际上确实列出了 react-native-vector-icons 作为模块的名称???

如果我删除该文件,错误不再发生,但打包程序卡在 93% 并抱怨找不到完全不相关的库。

我炸毁了我的存储库,甚至重新安装了所有东西,包括 npmrnpm,甚至升级了 node。我 运行 与我的队友使用相同版本的所有内容,他们能够 运行 打包程序而不会出现问题。

将此作为答案发布,以防将来其他人遇到此问题。

运行 npm start with sudo 权限在节点包管理器处于 运行 初始构建阶段时授予正确的权限。这似乎只有在您 运行 来自的 shell/user 具有受限权限时才会发生。强制升级到 sudo 的权限使包管理器可以完全控制以完成构建。

我收到类似

的错误
Failed to build DependencyGraph: @providesModule naming collision:
Failed to build DependencyGraph: @providesModule naming collision:
Duplicate module name: accepts
Duplicate module name: accepts

我通过删除 npm 的缓存 .npm 并使用 --reset-cache

重新运行 packager 解决了这个问题
rm -rf ~/.npm

sudochown 没有为我修复它。我从 同一个库 得到同样的错误,非常奇怪:

Failed to build DependencyGraph: @providesModule naming collision:
 Duplicate module name: react-native-vector-icons
  Paths: /Users/collumj/research/k9fresh/ios/build/Build/Products/Debug-iphonesimulator/kisharNine.app/package.json collides with /Users/collumj/research/k9fresh/node_modules/react-native/local-cli/core/__fixtures__/files/package.json

遇到这个就不用sudo了。

警告:破坏性,先签到。

rm -rf android ios
git reset --hard
npm start

这每次都能解决。 RN 0.39.2

编辑:后来,我想我通过取消链接 react-native-vector-icons 库来解决这个问题;我认为我得到的说明让我在链接上加倍了,或者不知何故已经过时了。

清理 nvm 缓存并重新安装所有内容后 node_modules 我意识到我遇到这个问题是因为 react-native-router-flux。

我通过降级 将其修复,从 react-native-router-flux@3.38.1react-native-router-flux@3.38.0

这里有更多详细信息: https://github.com/aksonov/react-native-router-flux/issues/1816