Gibt es eine Möglichkeit, npm dazu zu bringen, alle Module unter node_modules aufzuheben? So etwas wie npm-Neuerstellung, bei der alle Build-Artefakte entfernt, aber nicht neu erstellt werden?
Ich dachte du fragst nie. Ich habe mein Verzeichnis node_modules in git eingecheckt, wie unter mikealrogers.com/posts/nodemodules-in-git.html empfohlen . Wenn ich ein neues Modul hinzufüge oder ein aktuelles aktualisiere, erhalte ich Build-Artefakte in Git, die nicht vorhanden sein sollten, und muss sie bereinigen. Ich dachte, wenn ich sie zuerst reinigen könnte, würde der Prozess etwas reibungsloser verlaufen.
Dave Causey
1
Ein kurzer Hinweis: Jetzt, da NPM unterstützt shrinkwrap(siehe npmjs.org/doc/shrinkwrap.html ), können Sie die Versionen ALLER Ihrer Abhängigkeiten sperren (anstatt nur die der obersten Ebene).
Michelle Tilley
2
Wenn diese Funktion nicht vorhanden ist, ist dies auch für die plattformübergreifende Entwicklung von Vorteil. Wir entwickeln auf Mac und führen CI unter Linux aus und müssen das Verzeichnis node_modules entfernen und jedes Mal, wenn wir einen Build unter Linux durchführen, komplett neu installieren, was eine Menge Zeit verschwendet.
JBCP
4
@JBCP du machst es falsch. Was Sie tun sollten, ist die Installation von Modulen in packages.json(using npm --save) und das Einfügen des node_modulesVerzeichnisses in .gitignore(using git ). CI sollte Ihre node_modules nicht ziehen, sondern ausführen npm install. Wenn das Herunterladen aus der npm-Registrierung zu lange dauert, verwenden Sie etwas wie sinopia, um es zwischenzuspeichern.
Bojan Markovic
1
@BojanMarkovic - Sie haben Recht, so werden unsere Projekte jetzt eingerichtet. Mein Kommentar oben war von vor ungefähr einem Jahr. Es gibt (gab) einige Projekte, die empfohlen haben, node_modules in Git zu übernehmen, aber das ist definitiv nicht korrekt.
JBCP
Antworten:
160
Sie können einfach das Verzeichnis node_module löschen
Dies würde die Quelle der node_modules sowie die kompilierte Ausgabe entfernen und die Frage nicht beantworten.
TheGecko
Wenn Sie Abhängigkeiten haben, die mit npm link verknüpft sind, können Sie diese
Modulquelle
12
Ich habe dies zu meinem hinzugefügt package.json: "clean": "rm -rf node_modules", "reinstall": "npm run clean && npm install", "rebuild": "npm run clean && npm install && npm run build",. Scheint gut zu funktionieren.
Lucas
5
Für Windows> rd node_modules / s
Ishara Samantha
2
@ Lucas Sie sollten dies eine Antwort posten, da es die am besten geeignete ist
Joseph
56
Ich habe dies zu meinem package.json hinzugefügt:
"build":"npm build","clean":"rm -rf node_modules","reinstall":"npm run clean && npm install","rebuild":"npm run clean && npm install && npm run build",
Ich finde es sehr seltsam, dass eine solche grundlegende Funktionalität, die von npm empfohlen wird, einen Hack erfordert, um sie zu erreichen. Was machen alle anderen? Ignorieren Sie einfach die Empfehlung und verwenden Sie npm install?
VitalyB
5
Mit einem Wort nein .
In zwei noch nicht .
Es gibt jedoch ein offenes Problem für ein --no-buildFlag, npm installum eine Installation ohne Gebäude durchzuführen, mit dem Sie das tun können, was Sie verlangen.
shrinkwrap
(siehe npmjs.org/doc/shrinkwrap.html ), können Sie die Versionen ALLER Ihrer Abhängigkeiten sperren (anstatt nur die der obersten Ebene).packages.json
(usingnpm --save
) und das Einfügen desnode_modules
Verzeichnisses in.gitignore
(using git ). CI sollte Ihre node_modules nicht ziehen, sondern ausführennpm install
. Wenn das Herunterladen aus der npm-Registrierung zu lange dauert, verwenden Sie etwas wie sinopia, um es zwischenzuspeichern.Antworten:
Sie können einfach das Verzeichnis node_module löschen
quelle
package.json
:"clean": "rm -rf node_modules", "reinstall": "npm run clean && npm install", "rebuild": "npm run clean && npm install && npm run build",
. Scheint gut zu funktionieren.Ich habe dies zu meinem package.json hinzugefügt:
Scheint gut zu funktionieren.
quelle
clean
muss in der package.json definiert werden!Sie können den Befehl 'npm cache' verwenden, mit dem das Paket tarball heruntergeladen und in das Verzeichnis npm cache entpackt wird.
Die Quelle kann dann kopiert werden.
Unter Verwendung von Ideen aus https://groups.google.com/forum/?fromgroups=#!topic/npm-/mwLuZZkHkfU habe ich das folgende Knotenskript entwickelt. Keine Garantien, YMMV usw.
quelle
npm install
?Mit einem Wort nein .
In zwei noch nicht .
Es gibt jedoch ein offenes Problem für ein
--no-build
Flag,npm install
um eine Installation ohne Gebäude durchzuführen, mit dem Sie das tun können, was Sie verlangen.Siehe diese offene Ausgabe .
quelle
Versuchen Sie es mit https://github.com/voidcosmos/npkill
Es werden alle node_modules gefunden und Sie können sie entfernen.
quelle
Für Windows-Umgebung:
quelle
Ich habe einige Zeilen in package.json hinzugefügt:
Wenn Sie nur möchten,
clean
können Sie dies verwendenrimraf node_modules
.quelle