我该如何修复由于 "Duplicate module name" 碰撞导致的构建失败?

How do I fix a failure to build due to a "Duplicate module name" collision in a react-native?

RN 0.39.2

这听起来像是 的重复,但其中没有任何真正的修复,只有解决方法。还有其他的,但它们适用于旧版本的 RN,或者是相似但不同的根本原因。我有自己的解决方法(见下文),但我想真正解决问题,而不是每天五次执行此解决方法。

错误:

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

解决方法(对我而言):

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

一定有办法真正解决这个问题。这个包是不是 link 正确?我在添加 NativeBase (http://nativebase.io/docs/v0.5.13/getting-started) 时安装了它。

更新:还尝试取消linking react-native-vector-icons 库(因为显然你不需要?不确定,linking 在说明中可能是多余的)。无论如何,它没有用,同样的错误。

编辑:好的,这可能实际上没有用,现在检查...

这个问题的解决方案是使用 react-native unlink 取消 link react-native-vector-icons 库。我认为 native-base 库关于使用 link 的说明已经过时了。可能是?不太确定,但我可以说在 unlinking 之后我仍然可以使用图标:

<View style={{
    marginTop: 10,
    flexDirection: "row"
}}>
    <H3 style={{
        marginRight: 5
    }}>Icons:</H3>
    <Icon name='ios-home'/>
    <Icon name='ios-menu' style={{
        fontSize: 20,
        color: 'red'
    }}/>
</View>

渲染良好。

如果您使用 npm 命令而不是 yarn 命令,则可能是这样。尝试删除 node_modules 目录。 npm cache clean 然后 yarn install