Ich bin vorsichtiger als sonst, weil mich das Verhalten npm
in der Vergangenheit verwirrt hat.
Ich bin auf einem Mac und habe node.js durch installiert brew install node
.
Jetzt, da ich in jslint.js
der Befehlszeile als Befehl ausgeführt werden möchte, stelle jslint
ich fest, dass der kanonische Weg, dies zu erreichen, der ist, sudo npm install -g jslint
der mit dieser Ausgabe erfolgreich ausgeführt wurde:
$ sudo npm install -g jslint
npm http GET https://registry.npmjs.org/jslint
npm http 200 https://registry.npmjs.org/jslint
npm http GET https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgz
npm http 200 https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgz
npm http GET https://registry.npmjs.org/nopt
npm http 200 https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http 200 https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http GET https://registry.npmjs.org/abbrev
npm http 200 https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/abbrev/-/abbrev-l.0.4.tgz
npm http 200 https://registry.npmjs.org/abbrev/-/abbrev-1.0.4.tgz
/usr/local/share/npm/bin/jslint -> /usr/local/share/npm/lib/node_modules/jslint/
bin/jslint.js
jslint@0.1.9 /usr/local/share/npm/lib/node_modules/jslint
└── nopt@1.0.10 (abbrev@1.0.4)
Anschließend
$ jslint ply.js
zsh: command not found: jslint
weil /usr/local/share/npm/bin
ich nicht in meinem bin $PATH
.
1) Warum wurde brew
Global npm
bin
Path to Path nicht installiert ? Vielleicht hat es das getan, aber etwas zsh
bringt es durcheinander. Wo könnte ich das finden?
2) Soll ich das tun? ( :/usr/local/share/npm/bin
An den exportierten $PATH
unten in meinem anhängen ~/.zshrc
)
Es scheint, dass dies nicht der richtige Weg ist, denn wenn ich später etwas anderes installiere (mit Homebrew oder etwas anderem), muss ich es an mein zsh-Startskript anhängen, um den Pfad festzulegen. Ich denke, in diesem speziellen Fall geht es nur darum, npm install -g
nicht die richtigen Symlinks an einem "richtigen" Ort zu /usr/local/bin
erstellen (wie vielleicht).
Ich denke, ich werde manuell Symlinks /usr/local/bin
für alle Programme erstellen, mit denen ich Probleme habe, und es sollte für meine Zwecke gut genug sein.
BEARBEITEN : Ich aktualisiere dies im Jahr 2019, da diese alte Frage beliebt ist, aber jetzt sowohl in Bezug auf meinen persönlichen Workflow als auch in Bezug auf die beste Vorgehensweise bei der Installation des Knotens und der Verwaltung seiner verschiedenen Abhängigkeiten veraltet ist.
Mein persönlicher Workflow besteht nun darin, das von nodejs.org erhaltene Installationsprogramm zum Installieren von Node auf Systemen zu verwenden. Ich vertraue diesem mehr als dem Homebrew-Paket selbst, weil es am besten weiß, wie man die Dateien verwaltet. Wenn Sie Ihren Systemknoten von 8.10 auf 10.15 ändern möchten, egal ob auf Mac oder Windows, laden Sie einfach das Installationsprogramm von nodejs.org für 10.15 für Ihr Betriebssystem herunter. Der Versuch, einen über Homebrew installierten Knoten zu aktualisieren, hat sich meiner Erfahrung nach immer als schwieriger erwiesen.
Das Wichtigste ist auch, dass von der Verwendung von sudo, wie in meiner obigen npm-Installation von jslint gezeigt, dringend abgeraten wird. Ich bin mir ziemlich sicher, dass Homebrew-Pakete niemals mit dem Superuser installiert oder in irgendeiner Weise interagiert werden sollten. Es sollte nicht notwendig sein und führt zu Kopfschmerzen bei der Dateiberechtigung!
Außerdem empfehle ich ESLint gegenüber jslint und habe jslint seit Jahren nicht mehr verwendet.