Dies ist meine package.json
für das Modul, das ich in das übergeordnete Projekt einbinde:
{
"version": "0.0.1",
"name": "module-name",
"dependencies": {
"express": "3.3.4",
"grunt": "0.4.1",
"grunt-contrib-compass": "0.4.0",
"grunt-contrib-copy": "0.4.1",
"grunt-contrib-cssmin": "0.4.1",
"grunt-contrib-jshint": "0.6.3",
"grunt-contrib-requirejs": "0.4.1",
"grunt-contrib-uglify": "0.2.2",
"grunt-contrib-watch": "0.5.1",
"grunt-express-server": "0.4.1",
"grunt-karma": "0.4.5",
"grunt-regex-replace": "0.2.5",
"request": "2.25.0"
},
"scripts": {
"postinstall": "grunt install"
}
}
Eine Sache zu beachten ist, dass dieses Modul in einem privaten Repo enthalten ist und ich es package.json
wie folgt in das übergeordnete Modul einbinde :"module-name": "git+ssh://git@myserver:user/module-name.git"
postinstall
Skript schlägt fehl, da lokalegrunt
Pakete nicht gefunden werden, da sie nicht von NPM installiert wurdenAntworten:
Es sieht so aus, als hätten Sie einen Fehler gefunden, der schon eine ganze Weile existiert und noch keine Lösung hat. Für diesen Fall gibt es im npm-Repository mehrere offene Probleme:
In der ersten Liste werden mehrere Problemumgehungen aufgeführt, die Sie ausprobieren können.
Eine alternative Lösung kann (ein wenig hackisch) sein, die Abhängigkeiten explizit als Abhängige der ersten Ebene aufzulisten. Dies erfordert, dass Sie die Liste pflegen, aber praktisch muss dies sehr selten durchgeführt werden.
quelle
Ich hatte ein sehr ähnliches Problem: Das Entfernen des gesamten
node_modules
Ordners und die Neuinstallation funktionierten für mich. Habe diesen Trick von der IT Crowd Show gelernt !quelle
npm install
.Ich benutze Windows-Maschine.
quelle
Wenn Sie diesen Code geerbt haben, sind möglicherweise die Abhängigkeiten und Versionen gesperrt und Sie haben eine ./npm-shrinkwrap.json-Datei.
Wenn Ihre Abhängigkeit nicht in dieser Datei aufgeführt ist, wird sie mit dem
npm install
Befehl niemals installiert .Sie müssen die Pakete manuell installieren und dann ausführen
npm shrinkwrap
, um die Shrinkwrap-Datei zu aktualisieren.quelle
package-lock.json
nach dem Update auf Knoten 8.0.0 und npm 5.0.0 eine Datei erstellt wurde . Danach würde das Ausführennpm install
immer nur dieses eine Paket installieren, anstatt alle meine Abhängigkeiten. Das Löschenpackage-lock.json
und erneute Ausführennpm install
löste das Problem für mich.package-lock.json
war im Weg.Ich vermute, Sie haben das Problem, dass sich Ihre
package.json
Datei nicht im selben Verzeichnis befindet wie IhreGruntfile.js
. Wenn Sie Ihregrunt xxx
Befehle ausführen, erhalten Sie eine Fehlermeldung wie:Im Moment lautet die Lösung:
npm install
, um sie lokal zu ladenIMHO ist es traurig, dass wir keine Grunt-Auflösungsmodule haben können, die von einem übergeordneten npm-Modul geladen wurden (dh package.json in einem übergeordneten Verzeichnis innerhalb desselben Projekts). Die Diskussion hier scheint darauf hinzudeuten, dass dies getan wurde, um das Laden von "globalen" Modulen zu vermeiden, aber ich denke, wir wollen stattdessen von "meinem Projekt" -Modulen laden.
quelle
Gruntfile.js
und beide enthaltenpackage.json
.grunt
, es ist ein Problem mit dernpm
nicht rekursiven Installation der Abhängigkeiten in meinem Submodulprojekt.OP kann für eine ältere Version des Knotens zutreffen. Dasselbe habe ich jedoch auch mit Knoten 4.4.1 gesehen.
Es kann sehr gut mit der von Ihnen verwendeten Knotenversion verknüpft sein. Versuchen Sie, auf eine neueste Version zu aktualisieren. Bestimmte Abhängigkeiten werden nicht transitiv geladen, wenn sie nicht mit der Knotenversion kompatibel sind.
Ich fand das durch Laufen
npm update
.Nach dem Upgrade auf die neueste Version (4.4 -> 5.9); das wurde behoben.
quelle
In meinem Fall hat es geholfen,
node_modules
und zu entfernenpackage-lock.json
.Danach installieren Sie einfach alles neu mit
npm install
.quelle
Überprüfen Sie auch, ob Ihr Paketname korrekt akzeptiert wird:
FALSCH:
RICHTIG
quelle
Möglicherweise müssen Sie die grunt-cli installieren. Versuchen Sie dies, bevor Sie eine npm-Installation durchführen:
Das behebt, dass das Grunzen für mich nicht beendet wird. Sie benötigen außerdem eine gültige Grunzdatei.
Quelle: https://stackoverflow.com/a/16456467/241294
quelle
~ ᐅ which grunt /opt/local/bin/grunt
npm install
undgrunt install
, funktioniert es einwandfrei. Das Problem ist, dass NPM diepackage.json
grunt
, wenn Sie Module mit NPM installieren, wird am Ende der bereits installierten Abhängigkeiten dieses Moduls normalerweise eine Sommerzeit angezeigt. Wenn ich das betreffende Modul installiere, erhalte ich keine Zusammenfassung der installierten Abhängigkeitsmodule.Nur für den Fall, dass jemand unter dieser Situation leidet und zufällig den gleichen Asanin-Fehler macht wie ich, ist dies in meinem Fall der Fall. Nachdem ich meinen Kopf eine Stunde lang gegen die Wand geschlagen hatte, stellte ich fest, dass mein JSON falsch verschachtelt war und sich der Schlüssel "Abhängigkeiten" im Schlüssel "Repository" befand.
Es ist unnötig zu erwähnen, dass keine Fehler erkennbar waren und keine Module installiert wurden.
quelle
Eine andere Möglichkeit, dies zu umgehen, besteht darin, dies in den
package.json
Abschnitt mit den Modulskripten aufzunehmenDadurch werden alle vom Modul benötigten Pakete installiert, und dieser Fehler wird nicht angezeigt.
quelle
passiert mit alter Knotenversion. Verwenden Sie die neueste Version des Knotens wie folgt:
$ nvm use 8.0
$ rm -rf node_modules
$ npm install
$ npm i somemodule
Bearbeiten: Stellen Sie auch sicher, dass Sie
save
.z.B:
npm install yourmoduleName --save
quelle
Ich habe diesen Fehler erhalten, als ich eine saubere Node-Entwicklungsumgebung unter Windows installiert habe.
Um dies zu beheben, ging ich in mein neues Projektverzeichnis (mit dem ich gerade ein Gerüst erstellt habe
yo angular
) und gab zwei Befehle ein:npm install -g grunt --save-dev
Dadurch werden die lokalen Grunzabhängigkeiten in Ihrem Projekt installiert. Nächster:
npm install
Dadurch wird sichergestellt, dass alle Ihre (neuen) Projektabhängigkeiten installiert sind.
Tada!
quelle
Erwähnenswert, um sicherzustellen, dass Ihre Abhängigkeiten in dem
dependencies
Teil von Ihnen liegenpackage.json
(im Gegensatz zudevDependencies
).Mein Problem war im Grunde das gleiche wie bei OP:
repo1
) über"module-name": "git+ssh://git@myserver:user/my-repo-name.git"
in einem anderen Repo (nennen wir esrepo2
),repo2
'snode_modules
war eine Paketabhängigkeit vonrepo1
nicht vorhanden.repo1
war, diese Abhängigkeit indevDependencies
statt aufzulistendependencies
repo1
‚spackage.json
vondevDependencies
bisdependencies
repo2
entfernte ich meinenode_modules
undpackage-lock.json
tat esnpm install
, eine voilà! ... Abhängigkeit war da!quelle
Ich hatte das gleiche Problem. Aber auf demselben Computer hatte ein Projekt eine gute package.json, auf der alle meine Abhängigkeiten erfolgreich installiert wurden. Und in einem anderen Projekt wurden meine package.json-Abhängigkeiten nicht installiert, egal was ich tue. Ich habe gerade die package.json kopiert und in dieses andere Projekt eingefügt. Und es hat funktioniert! Der Unterschied, den ich gefunden habe, war nur eine leere Zeile am Anfang der Datei. Weiß nicht oder es beeinflusst irgendetwas, vielleicht ein anderes Problem. Das Problem war jedoch nur die Datei package.json.
quelle
Ich denke, dass ich auch mit diesem Problem konfrontiert war, und die beste Lösung, die ich gefunden habe, war, auf meine Konsole zu schauen und den Fehler herauszufinden, der ausgelöst wurde. Also habe ich es sorgfältig gelesen und festgestellt, dass das Problem darin bestand, dass ich mein Repo, meine Beschreibung und meinen gültigen Namen nicht in meinem angegeben habe
package.json
. Ich habe diese Informationen hinzugefügt und alles war in Ordnung.quelle