Ich habe versucht, ein Upgrade phonegap
durchzuführen, npm
als ich auf Probleme stieß. Kurz gesagt, es gibt zwei node_modules
Verzeichnisse auf meinem Computer.
/usr/local/lib/node_modules
/usr/local/share/npm/lib/node_modules
Beim Ausführen npm upgrade -g phonegap
wird anscheinend npm
die Kopie des Pakets aktualisiert, in dem sich das Paket befindet /usr/local/lib/node_modules
. Wenn ich jedoch which phonegap
finde, dass der Symlink auf die ältere Installation unter verweist /usr/local/share/npm/lib/node_modules
.
Wenn ich versuche, ein eigenständiges Paket wie z. B. zu installieren express
, werden die Dateien im /usr/local/lib/node_modules
Verzeichnis installiert , aber an keiner Stelle in meinem Verzeichnis wird ein Symlink zur ausführbaren Datei erstellt $PATH
.
Zwei Fragen:
- Welches ist das richtige Verzeichnis für Knotenmodule unter Mac OS X?
Wie kann ich konfigurierennpm
, dass ausführbare Dateien in meinem verknüpft werden,$PATH
wenn Software installiert wird?
Bonuspunkte: node
Beeinflusst die Installationsmethode die Konfiguration? Es gibt viele Möglichkeiten .
BEARBEITEN : Ich habe herausgefunden, dass Symlinks in meinem erstellt wurden /usr/local/bin
, aber mein .bash_profile
wurde mit /usr/local/share/npm/bin
vor /usr/local/bin
in meinem eingerichtet $PATH
. Ich erinnere mich vage, dass ich diesen Pfad irgendwann zu meinem Profil hinzugefügt habe, aber ich bin mir nicht sicher, warum.
Nun stellt sich die Frage: Wie bin ich zu zwei verschiedenen node_modules
Verzeichnissen auf meinem Computer gekommen und warum sollte ich meine node_modules
im share/npm/lib
Unterverzeichnis haben wollen, anstatt direkt in /usr/local/lib
?
Zweiter Thomas David Kehoe , mit folgendem Vorbehalt -
Wenn Sie den Node Version Manager (nvm) verwenden, werden Ihre globalen Knotenmodule unter der Version des Knotens gespeichert, die Sie zum Zeitpunkt des Speicherns des Moduls verwenden.
Also
~/.nvm/versions/node/{version}/lib/node_modules/
.quelle
um den globalen Speicherort von npm_modules zu überprüfen
quelle
Wenn Sie wissen möchten, wo sich Ihre NPM-Pakete befinden, sollten Sie:
Da npm selbst ein NODE-Paket ist, wird es am selben Speicherort wie andere Pakete ( EUREKA ) installiert . Um dies zu bestätigen, sollten Sie in node_modules cd und das Verzeichnis auflisten.
ODER
Gemäß @anthonygores Kommentar
quelle
npm root -g
undwhich npm
gab nicht die gleichen Ergebnisse. Ich wollte deinstallieren ,expo-cli
und es gelang mir durch Entfernenexpo
undexpo-cli
Verzeichnisse aus/usr/local/bin/npm
. Vielen Dank an T04435!