2016-04-20 7 views
1

Ich habe in der Installation der Grunzen bezogenen Knoten Modulabhängigkeiten für mein Projekt in einige Probleme laufen,Peer Abhängigkeitsproblem in npm Knoten Module

Ich möchte die ausgewählten Abhängigkeiten mit einem Befehl installieren, so habe ich unten,

Fehler wie '[email protected] erfordert einen Peer von [email protected]~0.4 aber keiner wurde installiert.' So wie pro das Feedback von googeln, fanden wir die Abhängigkeit Version wie unten fix codieren kann,

npm install [email protected]~0.4 grunt-contrib-jshint grunt-cli grunt-contrib-watch grunt-exec grunt-contrib-symlink grunt-contrib-clean grunt-contrib-copy grunt-text-replace grunt-git --save-dev 

Es wurde das Problem vorübergehend für einige Zeit behoben, aber jetzt bekomme ich einen Fehler wie ‚[email protected] 0 erfordert einen Peer von [email protected]~1.0.1, aber keiner wurde installiert. '

So scheint es, dass die grunt plugins unterschiedliche Version der gleichen Abhängigkeit benötigt - grunt (in meinem Fall). Installation der Plugins nacheinander anstelle eines Clusters lösen auch pflegt das Problem

Antwort

2

aktualisieren

Da die Menschen wollen Punkte nehmen von dieser Antwort weg w/o Lesen der Kommentare, um zu sehen, dass eine Lösung gefunden wurde, hier ist, was wir erreicht haben:

Eine Instanz wie diese sollten Sie die zuvor veröffentlichten Versionen fürüberprüfen, finden Sie eine ältere Version, die Ihre Anforderungen erfüllt (v0.3.8) und überprüfen Sie, ob die Funktionen, die Sie mit dem Plugin verwenden möchten, verfügbar sind oder nicht. Wenn ja, versuchen Sie npm install [email protected] --save-dev. Releases können here gefunden werden.

Original-Lösung

Zuerst Sie wollen Ihr Projekt initialisieren, indem eine package.json-Datei erstellen, indem Sie den Befehl npm init ausgeführt wird. Sie werden aufgefordert, mehrere Fragen zu beantworten. Sie können die Standardwerte ändern, wenn Sie möchten.

Sobald das Projekt initialisiert wurde, installieren Sie die Abhängigkeiten nacheinander & enthalten die Flagge --save oder --save-dev. Dadurch wird die Abhängigkeit zum Manifest package.json hinzugefügt. Beispiel: npm install grunt-contrib-jshint --save-dev

Sobald alle Abhängigkeiten in der Datei package.json aufgeführt sind, können Sie mit npm install eine Installation mit einem Befehl ausführen.

Die NPM Registrierung hat eine very detailed article auf package.json verwenden, wenn Sie mehr erfahren möchten.

+0

Ich bin mir bewusst, wie npm Installation zusammen mit package.json funktioniert. Ich bitte, meine Frage könnte anders sein. Wenn ich eine package.json wie unten habe, und meine grunt plugins eine andere Version der Grunt-Abhängigkeit benötigen, gibt es eine Möglichkeit, verschiedene Versionsabhängigkeiten zu erwähnen. "devDependencies": { "grunzen": "^ 0.4.5", "Grunzen-contrib-clean": "^ 0.7.0", "Grunzen-contrib-Kopie": „^ 0,8. 2" , "Grunzen-contrib-jshint": "^ 0.11.3", "Grunzen-contrib-Symlink": "^ 0.3.0"} – Bharath

+1

ich denke, es ist ein viel weiser Ansatz ist alles Plugins anpassen zu verwenden eine einzige Version der Core-Grunt-Abhängigkeit. Der Versuch, mehrere Instanzen von Grunt in einem einzigen Projekt zu verwalten, erzeugt einen wahnsinnigen Overhead. – theaccordance

+1

Wenn Sie auf zwei separate grunt-Instanzen festgelegt sind, müssen Sie zwei separate gruntfiles verwalten und einen Weg finden, beide Versionen der Abhängigkeit zu haben in 'Knoten_Module'. Sie können dann das '--gruntfile'-Flag verwenden, um anzugeben, welche gruntfile ausgeführt werden soll. Ref: http://gruntjs.com/using-the-cli – theaccordance

0

installieren Grunzen mit der globalen Flagge

npm install -g grunt 
+0

Bevor Sie den Grunt Plugin Cluster installieren, muss ich die Grunt Abhängigkeit global installieren? – Bharath

+0

das Grunt-Modul sollte global und lokal vorhanden sein –

+0

Wir sollten keine Version von grunt bei der Installation sowohl global als auch lokal erwähnen? – Bharath

0

Ich habe mein Problem mit den Vorschlägen aus der Accordance behoben.

Nur die neueste Version von grunt-git (1.0.0) hatte die Abhängigkeitsproblem, so dass ich die vorherige Version 0.3.7 installieren, die keine bestimmte Version von Grunt erfordert.

npm install [email protected] grunt-contrib-jshint grunt-cli grunt-contrib-watch grunt-exec grunt-contrib-symlink grunt-contrib-clean grunt-contrib-copy grunt-text-replace [email protected] --save-dev 
0

Ich stieß heute bei der Installation von grunt-exec auf ein ähnliches Problem.

npm ERR! peerinvalid The package [email protected] does not satisfy its siblings' peerDependencies requirements! 
npm ERR! peerinvalid Peer [email protected] wants [email protected]~0.4 

Von einigen Hinweisen in diesem Thread ich es ...

npm uninstall grunt 

im Stammordner meines Projektes festgelegt und ich bearbeiten package.json Grunzen aus den devDependencies zu entfernen.

Ich hatte bereits Grunt global installiert, so dass es nicht auch im Projekt benötigt.

Lauf

npm -D Grunzen-exec

ein zweites Mal für mich gearbeitet installieren und meine aktualisiert devDependencies sieht nun wie folgt aus:

"devDependencies": { 
    "chai": "^3.5.0", 
    "grunt": "^0.4.5", 
    "grunt-contrib-clean": ">0.4.0", 
    "grunt-contrib-concat": "^1.0.0", 
    "grunt-contrib-jshint": "~1.0.0", 
    "grunt-contrib-uglify": "^1.0.1", 
    "grunt-exec": "^0.4.6", 
    "grunt-mocha-test": "^0.12.7", 
    "mocha": "^2.4.5" 
    }, 

mit den neuen Linien grunzen und grunzen.

Bis jetzt funktioniert mein Projekt wie vor dem Hinzufügen von grunt-exec. Es sieht so aus, als hätte ich einen einfachen Weg gefunden, um auf eine frühere Version von Grunt herunterzustufen.

Hier ist die Versionsinformationen aus der globalen installieren:

>grunt -V 
grunt-cli v1.2.0 
grunt v0.4.5 

Hoffnung, das hilft.