Cela s'est produit apparemment au hasard pendant le développement. Lorsque vous essayez d'exécuter npm start
ou react-native run-ios
, J'obtiens l'erreur suivante:
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
Étrangement, /Users/chandlervdw/Repos/Relay/mobile/node_modules/react-native/local-cli/rnpm/core/test/fixtures/files/package.json
fait la liste react-native-vector-icons
comme nom du module ???
Si je supprime ce fichier, l'erreur ne se produit plus mais le packager est bloqué à 93% et se plaint qu'une bibliothèque complètement hors de propos ne soit pas trouvée.
J'ai explosé mon dépôt et j'ai même réinstallé tout, y compris npm
, rnpm
, et même la mise à niveau node
. J'utilise les mêmes versions de tout que mes coéquipiers, qui peuvent exécuter le packager sans problème.
Publier ceci comme une réponse juste au cas où quelqu'un d'autre aurait ce problème à l'avenir.
Fonctionnement npm start
avec les autorisations Sudo
accorde les privilèges appropriés lorsque le gestionnaire de packages de nœuds exécute la phase de construction initiale. Cela ne semble se produire que si le shell/l'utilisateur à partir duquel vous exécutez dispose de privilèges limités. Forcer l'escalade des privilèges à Sudo donne au gestionnaire de packages un contrôle total pour terminer la génération.
Je recevais des erreurs comme
Failed to build DependencyGraph: @providesModule naming collision:
Failed to build DependencyGraph: @providesModule naming collision:
Duplicate module name: accepts
Duplicate module name: accepts
Je l'ai résolu en supprimant le cache de npm .npm
et relance packager
avec --reset-cache
rm -rf ~/.npm
Sudo
ou chown
n'a pas résolu le problème pour moi. J'obtiens la même erreur de la même bibliothèque, très étrange:
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
Pas besoin de Sudo
lorsque je rencontre cela.
Attention: destructif, vérifiez d'abord.
rm -rf Android ios
git reset --hard
npm start
Cela le corrige à chaque fois. RN 0.39.2
edit: plus tard, je pense que j'ai corrigé cela en dissociant le react-native-vector-icons
lib; Je pense que les instructions que j'ai reçues m'ont fait doubler sur la liaison ou étaient en quelque sorte obsolètes.
Après avoir nettoyé le cache nvm et réinstallé tous les modules node_modules, j'ai réalisé que j'avais ce problème à cause du flux de routeur natif réactif.
Je l'ai corrigé avec une rétrogradation de [email protected]
à [email protected]
Plus de détails ici: https://github.com/aksonov/react-native-router-flux/issues/1816