web-dev-qa-db-ja.com

React-Native Packagerの失敗:モジュール名の重複

これは、開発中に一見ランダムに発生しました。実行しようとするとnpm startまたはreact-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をアップグレードさえしました。問題なくパッケージャを実行できるチームメイトと同じバージョンのすべてを実行しています。

16
chandlervdw

他の誰かが将来この問題を抱えた場合に備えて、これを回答として投稿してください。

ランニング npm start with Sudoパーミッションは、ノードパッケージマネージャーが最初のビルドフェーズを実行しているときに正しい特権を付与します。これは、実行しているシェル/ユーザーが制限された権限を持っている場合にのみ発生するようです。特権をSudoに強制的にエスカレートすると、ビルドを完了するための完全な制御がパッケージマネージャーに与えられます。

8
Alex

次のようなエラーが発生しました

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

Npmのキャッシュ.npmを削除し、packager--reset-cacheで再実行することで解決しました

rm -rf ~/.npm
4
Shaheen Ghiassy

Sudoまたはchownで修正できませんでした。私は同じライブラリから同じエラーを受け取ります、非常に奇妙です:

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 lib;私が得た指示は私をリンクで倍にさせたか、どういうわけか時代遅れであったと思います。

4
jcollum

Nvmキャッシュを消去してすべてのnode_modulesを再インストールした後、react-native-router-fluxが原因でこの問題が発生していることに気付きました。

[email protected]から[email protected]へのダウングレードで修正しました

詳細はこちら: https://github.com/aksonov/react-native-router-flux/issues/1816

3
Florin Dobre