Sono più cauto del solito perché sono stato confuso dal comportamento di npm
in passato.
Sono su un Mac e ho installato node.js tramite brew install node
.
Ora che voglio eseguire jslint.js
sulla riga di comando come comando, jslint
trovo che il modo canonico per ottenere ciò è sudo npm install -g jslint
che ha funzionato correttamente con questo output:
$ 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)
Successivamente
$ jslint ply.js
zsh: command not found: jslint
a causa di /usr/local/share/npm/bin
non essere nel mio $PATH
.
1) Perché non brew
ha installato il npm
bin
percorso globale al percorso? Forse lo ha fatto, ma qualcosa zsh
non fa che rovinarlo. Dove potrei trovarlo?
2) Devo farlo? (Aggiungi :/usr/local/share/npm/bin
all'esportato $PATH
in fondo al mio ~/.zshrc
)
Sembra che questo non sia il modo giusto di farlo perché se installo qualcos'altro in seguito (usando Homebrew o qualcosa del genere) dovrò aggiungerlo al mio script di avvio di zsh per impostare il percorso. Immagino in questo caso particolare sia solo una questione di npm install -g
non creare i giusti symlink in una posizione "corretta" (come /usr/local/bin
forse).
Penso che quello che farò è creare manualmente collegamenti simbolici all'interno /usr/local/bin
di tutti i programmi con cui ho problemi e dovrebbe essere abbastanza buono per i miei scopi.
EDIT : lo sto aggiornando nel 2019, perché questa vecchia domanda è popolare ma ora obsoleta sia in termini di flusso di lavoro personale sia in termini di come installare al meglio il nodo e gestire le sue varie dipendenze.
Il mio flusso di lavoro personale è ora quello di utilizzare il programma di installazione ottenuto da nodejs.org per installare il nodo sui sistemi. In realtà mi fido di questo più del pacchetto homebrew stesso, perché sa meglio come gestire i file. Se si desidera modificare il nodo di sistema da 8.10 a 10.15, sia su Mac che su Windows, è sufficiente scaricare il programma di installazione da nodejs.org per 10.15 per il proprio sistema operativo. Il tentativo di aggiornare il nodo installato tramite homebrew ha sempre dimostrato di essere un approccio più difficile nella mia esperienza.
Inoltre, la cosa più importante da sottolineare è che l'uso di sudo come mostrato nella mia installazione npm dell'esempio jslint sopra è altamente scoraggiato; Sono abbastanza certo che i pacchetti homebrew non debbano mai essere installati o interagiti in alcun modo usando il superutente. Non dovrebbe essere necessario e porterà a mal di testa per i permessi dei file!
Inoltre raccomando ESLint su jslint e non uso jslint da anni.