web-dev-qa-db-fra.com

Echec du packager React-Native: nom de module en double

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.

16
chandlervdw

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.

8
Alex

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
4
Shaheen Ghiassy

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.

4
jcollum

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

3
Florin Dobre