如何为已卸载的依赖项修复“无法构建DependencyGraph:@providesModule命名冲突”?

时间:2016-12-25 17:08:36

标签: node.js react-native

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

This error is caused by a @providesModule declaration with the same name across two different files.
Error: @providesModule naming collision:
  Duplicate module name: react-native-vector-icons
  Paths: /Users/collumj/research/kishar-nine/node_modules/react-native/local-cli/core/__fixtures__/files/package.json collides with /Users/collumj/research/kishar-nine/ios/build/Build/Products/Debug-iphonesimulator/kisharNine.app/package.json

几天前我安装了react-native-vector-icons(并且正在工作)。有一个调试器线没有被击中的问题,所以我想也许重新启动打包器会有所帮助。现在打包机根本不会启动。我有:

  • 已移除node_modules并重新安装
  • 检出先前提交的代码(没有react-native-vector-icons)并删除了node_modules等。
  • ./node_modules/react-native/packager/packager.sh clean
  • react-native unlink react-native-vector-icons
  • watchman watch-del-all
  • rm -rf $TMPDIR/react-* && watchman watch-del-all && rm -rf ios/build/ModuleCache/* && rm -rf node_modules/ && npm cache clean && npm i --silent

仍然得到同样的错误。我可以检查一个新的repo副本并启动它没有问题所以我不得不假设这是一个缓存/构建问题。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

如果您尝试添加到项目中的程序包包含两次,则可能会发生此类错误,因此构建系统无法注册具有重复名称的程序包。多次运行link命令时可能会发生这种情况。

要修复此问题,请确保在运行react-native link之后通常修改的所有文件(例如android/settings.gradleandroid/app/build.gradle等)只有一个条目用于您正在尝试的软件包加上。为安全起见,您甚至可以尝试还原android/ios/目录下的更改并再次运行链接。