2014-10-26 80 views
5

Ich benutze browserifyReactJS zu bündeln und (unter anderem) react-router. Aber wenn ich in der Konsole sehen, die Nachricht ...browserify Laden ReactJS zweimal mit reagieren-Router

das Herunterladen DevTools für eine Erfahrung eine bessere Entwicklung reagieren: http://fb.me/react-devtools

... zeigt sich zweimal mir zu sagen (!) Tatsächlich laufen zwei ReactJS-Instanzen. Wenn ich in meinem Browser JS sehe, sah ich die ReactJS Quelle nur einmal (AKTUALISIERT).

Wie würde ich das vermeiden?

Hinweis: Bitte sagen Sie mir, wenn Sie weitere Informationen benötigen, werde ich es zur Verfügung stellen.


package.json

"dependencies": { 
    "LiveScript": "^1.3.0", 
    "jquery": "*", 
    "firebase": "*", 
    "react": "0.11.2", 
    "reactfire": "*", 
    "react-router": "*", 
    ... 
} 

Als ich npm ls | grep -i react laufen bekomme ich ...

___ [email protected] 
___ [email protected] 
___ [email protected] 
_ ___ [email protected] 

So reagieren als 0.11.2 geladen (möglicherweise zweimal). Ich werde versuchen npm dedupe jetzt, wie vorgeschlagen.

+0

Ist es möglich, dass Sie irgendwo in Ihrem HTML einen alten Verweis auf die CDN-gehostete React-Quelle haben? –

+0

CDN-gehostete reagieren? Ich benutze ** npm ** um es zu holen. Das sollte kein Problem sein, oder? – xanderiel

Antwort

1

Führen Sie npm dedupe. Wahrscheinlich sind es nur zwei verschiedene Patch-Versionen von react.

Sie sollten keine Platzhalter für Abhängigkeiten verwenden. Für Reakfire <0.1 und Reag-Router ^0.9.

+0

AKTUALISIERT meine Frage mit '' 'npm ls''' Ich werde versuchen, jetzt dedupe. – xanderiel

+0

Hat nicht funktioniert! Ich habe versucht, es mit '' 'npm ls''' zu betrachten, wobei * react * tatsächlich zweimal auftauchte, dann' '' npm dedupe'''d, das das Duplikat * react * entfernte. Aber nach dem Erstellen mit * browserify * zeigt es immer noch das '' 'Download DevTools ...' '' zweimal in der Konsole. – xanderiel

+0

Trotzdem, guter Rat mit '' 'npm dedupe'''. Vielleicht füge ich '' 'npm shrinkwrap''' hinzu. – xanderiel

1

Überprüfen Sie, ob Sie mit einem anderen Namen reagieren. zum Beispiel

var React = require('react'); 

und

var React = require('React'); 

verursacht reagieren reagieren zweimal importiert werden.

Verwandte Themen