2016-04-25 23 views
0

Meine Projektreferenzen mocha, phantomjs usw., die während npm install viel Zeit zum Herunterladen benötigen. Dies ist kein Problem auf meinem lokalen Computer, da ich sie nur einmal herunterlade und sie für immer verwenden kann, bis ich mich entscheide, sie manuell zu aktualisieren.Wie kann npm festgelegt werden, dass keine Pakete installiert werden, die global installiert wurden?

Doch meine CI Maschine, mein jenkins Server benötigt sie jedes Mal herunterladen, dass ich ein git commit tat und git push die Tests zu tun und bereitstellen.

Also kann ich nur diesen Prozess beschleunigen, indem Sie die npm nicht diese langsamen Pakete vom Remote-Server herunterladen? Stattdessen installieren Sie sie aus dem lokalen Cache oder nicht, um sie zu installieren, wenn ich sie global installiert habe?

Wer weiß, wie man das konfiguriert?

Antwort

0

Sie können alle Pakete angeben, die lokal in devDependencies in package.json verwendet werden sollen, und dann npm install -d wird diese anstelle der Hauptabhängigkeiten installieren.

+0

Ja, ich hatte sie in 'devDependencies' gesetzt. Die Kopfschmerzen sind die 'npm Installation' diese Pakete sind sehr langsam, also hoffe ich, dass ich sie einmal installieren kann und dann kann ich sie für immer verwenden. –

1

I found some packages die hilfreich sein könnten

  • npm-install-changednpm install läuft nur, wenn der Inhalt von package.json ‚s devDependencies und dependencies geändert wurden, beachten Sie, dass es davon ausgeht, dass node_modules bleibt über verschiedene Builds, die nicht nützlich sein könnte, wenn Ihr CI-Server startet immer von Grund auf
  • npm-install-cache läuft npm install und kopiert dann Ihre aktuellen node_modules Ordner (irgendwo in \tmp), wenn yo u das Skript erneut aufrufen wird es Änderungen überprüfen (anstelle von Änderungen auf devDependencies oder dependencies getan) package.json, wenn es damals nicht ändern wird es den node_modules Ordner in \tmp gespeichert kopieren, ist die einzige Einschränkung, die ich sehe, ist dass es nicht Plattform kreuzen und dass der Cache-Ordner ist \tmp, die beim Neustart des Computers gelöscht wird (oder vielleicht sogar, wenn ein Prozess beendet ist!)

das zweite Paket möglicherweise nicht, wie es ist, aber es scheint wie ein guter Ort zu starten :)

Verwandte Themen