J'ai installé jshint en utilisant sudo npm install -g jshint
, et cela semble avoir fonctionné :
$which jshint
/usr/local/bin/jshint
Encore en cours d'exécution jshint
ou son équivalent de chemin complet ne semble rien faire. Il ne donne pas d'erreur non plus - il ne fait rien :
$jshint
$jshint --help
$jshint --verbose
$jshint --debug
$jshint admin.js
$jshint admin.js --verbose
$/usr/local/bin/jshint admin.js
J'ai également essayé de créer des liens symboliques avec nodejs selon cette réponse :
$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'est-ce que je rate ici ?
Edit :voici la sortie de apt-cache policy nodejs npm
. J'utilise simplement les packages standard d'Ubuntu 14.04, il n'y a donc rien de très spécial à ce sujet :
└─>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
Réponse acceptée :
Les dépôts officiels sont un gâchis…
L'installation de Node et de npm via les référentiels officiels m'a toujours posé problème. Je soupçonne que cela pourrait être dû à des outils dépendant de node
, lorsque la commande réelle sur Ubuntu est nodejs
, c'est pourquoi la création d'un lien symbolique devrait travail. Cela a fonctionné pour moi lors de mon test rapide dans une machine virtuelle, mais comme cela n'a pas fonctionné pour vous, essayons autre chose…
Alors, installez Node.JS d'une manière différente
Je préfère généralement installer Node sur Ubuntu en utilisant NVM. Cela évite le problème du node
la commande n'étant pas définie sur Ubuntu, et cela évite le désordre des autorisations qui nécessite l'utilisation de sudo
pour installer les modules npm.
Procédez comme suit pour revenir à zéro :
Supprimez tous les modules globaux que vous avez installés avec npm (instructions ici) :
sudo npm list -g --depth=0. | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
Supprimer le dossier de nœud lié symbolique :
sudo rm /usr/bin/node
Désinstallez les copies de nodejs
et npm
que vous avez installé via les référentiels d'Ubuntu :
sudo apt-get remove --purge nodejs npm
Nettoyez toute autre saleté :
sudo apt-get autoremove
À ce stade, which node
, which nodejs
, which npm
, et which jshint
ne devraient rien renvoyer.
Réinstallez Node, en ignorant les dépôts officiels
Prenez la dernière copie de NVM (vous devrez peut-être sudo apt-get install curl
premier):
curl https://raw.githubusercontent.com/creationix/nvm/v0.15.0/install.sh | bash
Dites à votre shell d'utiliser nvm
source ~/.nvm/nvm.sh
Installez ensuite une version de nœud
nvm install 0.12 # or whatever the latest version is
Et dites à nvm quelle version de Node vous voulez utiliser
nvm use 0.12
Vous devriez maintenant pouvoir exécuter Node avec le node
commande, vous devriez pouvoir installer des modules globalement sans sudo
, et vous devriez vous retrouver avec une copie de travail de jshint.
Si vous ne voulez pas exécuter nvm use v0.12
chaque fois que vous démarrez une nouvelle session de terminal, vous pouvez ajouter nvm use v
à votre ~/.bashrc
. Le v
n'est pas spécial, il correspondra simplement à v*
et trouver la dernière version. Vous pouvez également coder en dur une version spécifique.