2016-08-01 10 views
4

Wenn ich ein bestimmtes npm Paket installieren, um mein reagieren nativen Projekt und versuche, es mir die folgende Fehlermeldung erhalten auszuführen:Reagieren india Doppelten Modul Kollision Benennung

This error is caused by a @providesModule declaration with the same name accross two different files. 
Error: @providesModule naming collision: 
Duplicate module name: promiseRejectionIsError 
Paths: 

projectname/node_modules/react-native-stripe-api/node_modules/react-native/Libraries/promiseRejectionIsError.js collides with 

projectname/node_modules/react-native/Libraries/promiseRejectionIsError.js 

Problem: Dieses Paket react-native-stripe-api Installation eines anderen zu sein scheint reagieren und reagierendes natives Modul, das mit den über allen Projektmodulen in Konflikt steht.

Ich glaube, der Grund dafür ist, dass eine bestimmte Version reagieren und reagieren-native Module als eine Abhängigkeit in der Reaktion-native-Streifen-api/package.json definiert sind:

"dependencies": { 
    "babel-polyfill": "6.9.1", 
    "react": "15.1.0", 
    "react-native": "0.27.2" 
    }, 

Es scheint, wie diese sollten entfernt werden.

Könnte jemand mit mehr Wissen über npm bestätigen, dass dies tatsächlich die richtige Art der Definition von Knotenabhängigkeiten ist. Und die passende Lösung, um das Problem zu lösen.

Antwort

5

Ihre Einschätzung ist richtig

Could someone with more knowledge about npm confirm this is actually the correct way of defining node dependencies.

Sie sollten react als peerDependencies

And the appropriate solution to resolve the problem.

Quickfix Referenz: Löschen der zusätzliche reagieren Version

Longfix:Submit a pull request mit reagieren als peer dependency

0

Sie die node_modules Ordner entfernen sollte, und dann npm cache clean ausführen, stellen Sie sicher, dass es keine temporären Cache-Dateien oder Ordner (wie react-native-packager-cache-81b2c446 etc.) unter dem Projektstammordner, und dann erneut ausführen npm install

Verwandte Themen