Estoy siendo más cauteloso de lo habitual porque he estado confundido por el comportamiento de npm
en el pasado.
Estoy en una Mac y he instalado node.js a través brew install node
.
Ahora que quiero ejecutar jslint.js
en la línea de comandos como el comando jslint
, encuentro que la forma canónica de lograr esto es sudo npm install -g jslint
que se ejecutó con éxito con esta salida:
$ 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)
Después
$ jslint ply.js
zsh: command not found: jslint
por /usr/local/share/npm/bin
no estar en mi $PATH
.
1) ¿Por qué brew
no instaló la npm
bin
ruta global a la ruta? Tal vez lo hizo, pero algo zsh
lo está arruinando. ¿Dónde podría encontrar eso?
2) ¿Debo hacer esto? (Añadir :/usr/local/share/npm/bin
al exportado $PATH
en la parte inferior de mi ~/.zshrc
)
Parece que esta no es la forma correcta de hacerlo porque si instalo algo más tarde (usando Homebrew o algo así) tendré que agregarlo a mi script de inicio zsh para establecer la ruta. Supongo que en este caso en particular es solo cuestión de npm install -g
no hacer los enlaces simbólicos correctos en una ubicación "adecuada" (como /usr/local/bin
tal vez).
Creo que lo que haré es construir manualmente enlaces simbólicos dentro /usr/local/bin
para cualquier programa con el que tenga problemas y debería ser lo suficientemente bueno para mis propósitos.
EDITAR : Estoy actualizando esto en 2019, porque esta vieja pregunta es popular pero ahora está desactualizada tanto en términos de mi flujo de trabajo personal como en términos de cómo instalar el nodo y administrar sus diversas dependencias.
Mi flujo de trabajo personal ahora es usar el instalador obtenido de nodejs.org para instalar el nodo en los sistemas. De hecho, confío en esto más que en el paquete homebrew en sí, porque sabe mejor cómo administrar los archivos. Si desea cambiar su nodo del sistema de 8.10 a 10.15, ya sea en Mac o Windows, simplemente descargue el instalador de nodejs.org para 10.15 para su sistema operativo. Intentar actualizar el nodo instalado a través de homebrew siempre ha demostrado ser un enfoque más difícil en mi experiencia.
Además, lo más importante a señalar es que el uso de sudo como se muestra en mi instalación npm de jslint ejemplo anterior es altamente desaconsejado; Estoy bastante seguro de que los paquetes homebrew nunca deben instalarse o interactuar de ninguna manera con el superusuario. ¡No debería ser necesario, y dará lugar a dolores de cabeza por permisos de archivo!
Además, recomiendo ESLint sobre jslint, y no he usado jslint en años.