Jestem bardziej ostrożny niż zwykle, ponieważ byłem zdezorientowany zachowaniem npmw przeszłości.
Jestem na komputerze Mac i zainstalowałem node.js za pośrednictwem brew install node.
Teraz, gdy chcę uruchomić jslint.jsw wierszu poleceń jako polecenie jslint, stwierdzam, że kanonicznym sposobem na osiągnięcie tego jest sudo npm install -g jslintpomyślne uruchomienie z tym wyjściem:
$ 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)
Następnie
$ jslint ply.js
zsh: command not found: jslint
z powodu /usr/local/share/npm/binbraku w moim $PATH.
1) Dlaczego brewnie zainstalowano globalnej npm binścieżki dostępu? Może tak, ale coś zshgo psuje. Gdzie mogę to znaleźć?
2) Czy mam to zrobić? (Dołącz :/usr/local/share/npm/bindo wyeksportowanego $PATHna dole mojego ~/.zshrc)
Wygląda na to, że nie jest to właściwy sposób, aby to zrobić, ponieważ jeśli później zainstaluję coś innego (używając Homebrew lub czegoś podobnego), będę musiał dołączyć to do mojego skryptu startowego zsh, aby ustawić ścieżkę. Wydaje mi się, że w tym konkretnym przypadku chodzi tylko o to, aby npm install -gnie tworzyć właściwych linków symbolicznych w „właściwej” lokalizacji (jak /usr/local/binmoże).
Myślę, że to, co zrobię, to ręcznie zbuduję dowiązania symboliczne /usr/local/bindo wszelkich programów, z którymi mam problem i powinno to wystarczyć do moich celów.
EDYCJA : Aktualizuję to w 2019 roku, ponieważ to stare pytanie jest popularne, ale teraz jest przestarzałe zarówno pod względem mojego osobistego przepływu pracy, jak i pod względem tego, jak najlepiej zająć się instalacją węzła i zarządzaniem różnymi jego zależnościami.
Mój osobisty przepływ pracy polega teraz na użyciu instalatora uzyskanego z nodejs.org do zainstalowania węzła w systemach. W rzeczywistości ufam temu bardziej niż samemu pakietowi homebrew, ponieważ najlepiej wie, jak zarządzać plikami. Jeśli chcesz zmienić węzeł systemowy z 8.10 na 10.15, czy to w systemie Mac, czy Windows, po prostu pobierz instalator z nodejs.org dla 10.15 dla swojego systemu operacyjnego. Z mojego doświadczenia wynika, że próba uaktualnienia węzła zainstalowanego za pośrednictwem homebrew zawsze okazała się trudniejszym podejściem.
Ponadto, najważniejszą rzeczą, na którą należy zwrócić uwagę, jest to, że korzystanie z sudo, jak pokazano w mojej instalacji npm przykładu jslint powyżej, jest wysoce odradzane; Jestem prawie pewien, że pakiety homebrew nigdy nie powinny być instalowane ani w jakikolwiek sposób współpracujące przy użyciu superużytkownika. Nie powinno to być konieczne i doprowadzi do bólu głowy związanego z uprawnieniami do plików!
Ponadto polecam ESLint zamiast jslint i nie używałem jslint od lat.