Instalé jshint usando sudo npm install -g jshint
, y parece haber funcionado:
$which jshint
/usr/local/bin/jshint
Aún ejecutando jshint
o su equivalente de ruta completa no parece hacer nada. Tampoco da un error, simplemente no hace nada:
$jshint
$jshint --help
$jshint --verbose
$jshint --debug
$jshint admin.js
$jshint admin.js --verbose
$/usr/local/bin/jshint admin.js
También intenté vincular nodejs por esta respuesta:
$sudo ln -s /usr/bin/nodejs /usr/bin/node
$jshint admin.js --verbose
$jshint admin.js
$jshint --help
$man jshint
No manual entry for jshint
See 'man 7 undocumented' for help when manual pages are not available.
¿Qué me estoy perdiendo aquí?
Editar:aquí está el resultado de apt-cache policy nodejs npm
. Solo estoy usando los paquetes estándar de Ubuntu 14.04, así que no hay nada especial en esto:
└─>apt-cache policy nodejs npm
nodejs:
Installed: 0.10.25~dfsg2-2ubuntu1
Candidate: 0.10.25~dfsg2-2ubuntu1
Version table:
*** 0.10.25~dfsg2-2ubuntu1 0
500 http://us.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
100 /var/lib/dpkg/status
npm:
Installed: 1.3.10~dfsg-1
Candidate: 1.3.10~dfsg-1
Version table:
*** 1.3.10~dfsg-1 0
500 http://us.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
100 /var/lib/dpkg/status
Respuesta aceptada:
Los repositorios oficiales son un desastre...
Instalar Node y npm a través de los repositorios oficiales siempre me ha dado problemas. Sospecho que esto podría deberse a herramientas que dependen de node
, cuando el comando real en Ubuntu es nodejs
, por lo que la creación de un enlace simbólico debería trabaja. Me funcionó en mi prueba rápida en una máquina virtual, pero como a ti no te funcionó, probemos con otra cosa…
Entonces, instale Node.JS de una manera diferente
Generalmente prefiero instalar Node en Ubuntu usando NVM. Esto evita el problema del node
El comando no está definido en Ubuntu, y evita el lío de permisos que requiere el uso de sudo
para instalar módulos npm.
Haz lo siguiente para volver a hacer borrón y cuenta nueva:
Elimine cualquier módulo global que haya instalado con npm (instrucciones aquí):
sudo npm list -g --depth=0. | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
Eliminar carpeta de nodos vinculados:
sudo rm /usr/bin/node
Desinstalar las copias de nodejs
y npm
que instalaste a través de los repositorios de Ubuntu:
sudo apt-get remove --purge nodejs npm
Limpiar cualquier otro cruft:
sudo apt-get autoremove
En este punto, which node
, which nodejs
, which npm
, y which jshint
todos deberían devolver nada.
Vuelva a instalar Node, omitiendo los repositorios oficiales
Obtenga la última copia de NVM (es posible que deba sudo apt-get install curl
primero):
curl https://raw.githubusercontent.com/creationix/nvm/v0.15.0/install.sh | bash
Dile a tu shell que use nvm
source ~/.nvm/nvm.sh
Luego instale una versión de nodo
nvm install 0.12 # or whatever the latest version is
Y dile a nvm qué versión de Node quieres usar
nvm use 0.12
Ahora debería poder ejecutar Node con el node
comando, debería poder instalar módulos globalmente sin sudo
, y debería terminar con una copia funcional de jshint.
Si no desea ejecutar nvm use v0.12
cada vez que inicia una nueva sesión de terminal, puede agregar nvm use v
a su ~/.bashrc
. El v
no es especial, solo coincidirá con v*
y encuentra la última versión. Alternativamente, podría codificar una versión específica.