Unter Windows werden aus irgendeinem Grund beim Ausführen npm install
keine devDependencies installiert . AFAIK sollte es. Wenn ich npm install --dev
devDependencies ausführe, werden diese installiert. Ich verstehe nicht, warum npm install
nicht auch devDependencies installiert , sondern nur Abhängigkeiten. Was könnte der Grund sein? Wie kann ich es reparieren?
Vielleicht stimmt etwas mit meinem package.json nicht ? Es ist unten aufgeführt, wenn es hilfreich sein kann:
{
"name": "try-brunch",
"version": "0.1.0",
"private": "true",
"devDependencies": {
"brunch": "^2.0.4",
"cssnano-brunch": "^1.1.5",
"javascript-brunch": "^1.8.0",
"sass-brunch": "^1.9.2",
"uglify-js-brunch": "^1.7.8"
},
"dependencies": {
"jquery": "^2.1.4"
}
}
devDependencies
sind buchstäblich Abhängigkeiten für die Entwickler des Moduls . Ich wette, die meisten von uns habennpm install
ein Modul, um es zu verwenden, anstatt es zu entwickeln.devDependencies
wird nur benötigt, wenn Sie das Paket (Anwendung) schreiben . Für die Verwendung ist das nicht erforderlichdevDependencies
. So ist es sinnvoll fürdevDependencies
zusätzliche Flags erfordern installiert werden. Wennnpm install
installiertdevDependencies
standardmäßig die Benutzer erhalten würden redundante Pakete auch.npm i
in meinem Ordner mache, es py greiftpackage.json
und sowohl deps als auch devdeps installiert. Dies ist die Art und Weise, wie es funktionieren soll und es macht Sinn (z. B. wenn ich es tue,npm i
nachdemgit clone
ich erwartet habe, alles zu haben, was ich brauche, einschließlich zB Webpack-Plugins). Diese Frage behebt einen Fehler, wenn sich das tatsächliche Verhalten vom beabsichtigten unterscheidet. Bitte werfen Sie einen Blick auf docs - docs.npmjs.com/cli/install . Es gibt ein Flag, um devdeps nicht zu installieren, aber das Standardverhalten ist, sie zu installieren, was durchaus Sinn macht und das ist, was jeder erwartetnpm i
sollte beides booten, was das beabsichtigte, vernünftige und dokumentierte Verhalten ist, also verstehe ich ehrlich gesagt nicht, warum Sie sagen, dass dieses Problem ein Standard sein sollteAntworten:
Überprüfen Sie die NPM-Dokumente auf Installation
Hast du es versucht
Wenn Sie befürchten, dass Ihre package.json falsch ist, tun Sie dies am besten. Erstellen Sie einen neuen Ordner und führen Sie Folgendes aus:
Dann:
Und du solltest gut gehen! Andernfalls werden weiterhin andere Optionen veröffentlicht.
Überprüfen Sie Ihre npm-Konfiguration:
npm ruft seine Konfigurationseinstellungen über die Befehlszeile, Umgebungsvariablen und npmrc-Dateien ab. Überprüfen Sie also die Umgebungsvariablen und die npmrc- Datei.
Immer noch scheitern?
Ok, erstellen Sie einen neuen Ordner, idealerweise an einer anderen Stelle in Ihrem Dateisystem. dh. nicht in derselben Ordnerhierarchie. Zum Beispiel C: \ myNewFolder - je näher an der Basis C: fahren, desto besser.
Dann renne:
Führen Sie jetzt aus:
und schlussendlich:
Funktioniert alles wie erwartet?
Ich versuche zu verstehen, ob Ihr Problem global oder lokal für den vorherigen Ordner und die Abhängigkeiten ist.
quelle
Überprüfen Sie, ob der Produktionswert für npm config auf true gesetzt ist. Wenn dieser Wert wahr ist, werden die Entwicklungsabhängigkeiten übersprungen.
Lauf
npm config get production
So stellen Sie es ein:
npm config set -g production false
quelle
true
eher alsfalse
?Stellen Sie sicher, dass die env-Variable nicht
NODE_ENV
auf 'Produktion' gesetzt ist.In diesem Fall werden Entwicklungsabhängigkeiten nicht ohne das
--dev
Flag installiertquelle
npm install --dev
devDependencies rekursiv installiert wird . Dies ist fast nie das, was Sie wollen, und ist in der Tat veraltet .--dev
Option ist veraltet. Verwenden Sie--only=dev
stattdessenIch hatte eine
package-lock.json
Datei aus einer alten Version meiner package.json, habe diese gelöscht und dann alles korrekt installiert.quelle
Ich hatte ein ähnliches Problem.
npm install --only=dev
hat nicht funktioniert und auch nichtnpm rebuild
. Letztendlich musste ich löschennode_modules
und erneutpackage-lock.json
ausführennpm install
. Das hat es für mich behoben.quelle
Sie können den kurzen Weg für Installationsabhängigkeiten nur für die Entwicklung wie folgt verwenden:
quelle
Stellen Sie sicher, dass Ihre
package.json
gültig ist ...Ich hatte den folgenden Fehler ...
npm WARN Invalid name: "blah blah blah"
und das führte ebenfalls dazu, dass es
devDependencies
nicht installiert wurde.Zu Ihrer Information, ändern Sie den
package.json
"Namen", umblah-blah-blah
es zu beheben.quelle
Ich habe das gleiche Problem, weil ich das
NODE_ENV=production
beim Erstellen von Docker festgelegt habe. Dann füge ich noch eine hinzunpm install --only=dev
. Alles funktioniert gut. Ich benötige die devDependencies zum Erstellen von TypeSciprt-Modulenquelle