Я установил использование jshint sudo npm install -g jshint
, и это, кажется, работало:
$which jshint
/usr/local/bin/jshint
Все же выполнение jshint
или его эквивалентный полный путь, кажется, ничего не делает. Это не дает ошибку, любого - это просто ничего не делает:
$jshint
$jshint --help
$jshint --verbose
$jshint --debug
$jshint admin.js
$jshint admin.js --verbose
$/usr/local/bin/jshint admin.js
Я также попробовал symlinking nodejs на этот ответ:
$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.
Что я пропускаю здесь?
Править: вот вывод от apt-cache policy nodejs npm
. Я просто использую стандартные пакеты Ubuntu 14.04, таким образом, нет ничего совершенно особого об этом:
└─>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
Установка Узла и npm через официальные репозитории всегда давала мне проблему. Я подозреваю, что это могло произойти из-за инструментов в зависимости от node
, когда фактическая команда на Ubuntu nodejs
, который является, почему создание символьной ссылки должно работать. Это работало на меня в моем быстром тесте в виртуальной машине, но так как это не работало на Вас, давайте попробуем что-то еще...
Я обычно предпочитаю устанавливать Узел на Ubuntu с помощью NVM. Это избегает проблемы node
команда, не определяемая на Ubuntu, и это избегает путаницы полномочий, которая требует использования sudo
устанавливать npm модули.
Удалите любые глобальные модули, которые Вы установили с npm (инструкции здесь):
sudo npm list -g --depth=0. | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
Удалите symlinked папку узла:
sudo rm /usr/bin/node
Удалите копии nodejs
и npm
то, что Вы установили через репозитории Ubuntu:
sudo apt-get remove --purge nodejs npm
Очистите любой другой хлам:
sudo apt-get autoremove
На данном этапе which node
, which nodejs
, which npm
, и which jshint
ничего не должен все возвращать.
Захватите последнюю копию NVM (Вы, возможно, должны sudo apt-get install curl
сначала):
curl https://raw.githubusercontent.com/creationix/nvm/v0.15.0/install.sh | bash
Скажите Вашей оболочке использовать nvm
source ~/.nvm/nvm.sh
Затем установите версию узла
nvm install 0.12 # or whatever the latest version is
И скажите nvm, какую версию Узла Вы хотите использовать
nvm use 0.12
Теперь необходимо смочь выполнить Узел с node
команда, необходимо смочь установить модули глобально без sudo
, и необходимо закончить с рабочей копией jshint.
Если Вы не хотите работать nvm use v0.12
каждый раз, когда Вы запускаете новый терминальный сеанс, можно добавить nvm use v
к Вашему ~/.bashrc
. v
не является особенным, это будет просто соответствовать v*
и найдите последнюю версию. Кроме того, Вы могли твердый код определенная версия.