Installieren Sie node_modules zum Anbieter

8

Wie kann ich npm-Module lokal für jedes Projekt in vendor/node_modules installieren und package.json file anzeigen lassen.

Ich möchte package.json nicht in den Herstellerordner

verschieben

Ich habe Bower und in .bowerrc gebe ich den bower_components Pfad an - das ist super einfach.

Wie kann ich das mit npm machen?

Ich habe die Dokumente gelesen, npmrc docs, ein paar Fragen hier, gegoogelt, mehr als eine Stunde vergeudet - immer noch kein Glück. Das ist lächerlich schwer für eine so einfache Aufgabe.

Ich kümmere mich nicht um Minuspunkte, sag mir einfach, wie ich das endlich machen soll.

    
mozg 04.01.2015, 10:45
quelle

2 Antworten

9

Frustriert durch die Tatsache, dass es anscheinend keine eingebaute Möglichkeit gibt, in einen node_modules -Ordner in einem beliebigen Unterordner zu installieren, habe ich eine raffinierte Lösung mit den beiden folgenden Skripten gefunden:

preinstall.js

%Vor%

postinstall.js

%Vor%

Sie müssen sie nur in Ihrer package.json -Datei verwenden, indem Sie sie der Option scripts hinzufügen:

%Vor%

Die große Frage ist also: Was macht es?

  1. Nun, wenn Sie npm install aufrufen, wird das preinstall.js -Skript ausgelöst, das ein node_modules im gewünschten Unterordner erzeugt. Dann erstellt es eine symlink oder ( shortcut in Windows) von der node_modules , die npm erwartet an die reale node_modules .

  2. Dann installiert npm alle Abhängigkeiten.

  3. Wenn alle Abhängigkeiten einmal installiert sind, wird das postinstall.js -Skript ausgelöst, das symlink !

  4. entfernt

Hier ist ein praktisches Stichwort mit allem, was Sie brauchen.

    
Hayko Koryun 08.05.2015 09:18
quelle
2

Sie können die eingebaute npm-Funktionalität nicht verwenden.

In dieser Diskussion zum npm github-Repository wird das Problem behandelt. Es wird auch in diese antwort welche ist Teil ihrer FAQ.

Sie können die Installationen weiterhin "manuell" durchführen, indem Sie Module in Ihr /vendor -Verzeichnis kopieren und sie dann mit der require("./vendor/whatever") -Syntax aufrufen ... aber das bedeutet, dass require Ihren neuen benutzerdefinierten Speicherort verwenden muss. Es gibt ein paar Möglichkeiten, wie Sie damit umgehen können, aber alle bedeuten, dass Sie in Ihrer Quelle zusätzliche Arbeit verrichten, um den benutzerdefinierten Speicherort aufzunehmen.

    
Matthew Bakaitis 04.01.2015 11:55
quelle

Tags und Links