Как я могу заставить Jshint работать?
Я установил 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
Я также попробовал символическую ссылку на 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
1 ответ
Официальные репо беспорядок...
Установка Node и npm через официальные репозитории всегда доставляла мне неприятности. Я подозреваю, что это может быть связано с инструментами в зависимости от node
, когда фактическая команда на Ubuntu nodejs
Вот почему создание символической ссылки должно работать. Это сработало для меня в моем быстром тесте на виртуальной машине, но так как оно не сработало для вас, давайте попробуем что-нибудь еще...
Итак, установите Node.JS другим способом.
Обычно я предпочитаю устанавливать Node в 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
Удалить папку с символическими ссылками:
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
все должны ничего не возвращать.
Переустановите Node, пропустив официальные репозитории
Возьмите последнюю версию 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, какую версию Node вы хотите использовать
nvm use 0.12
Теперь вы сможете запустить Node с node
команда, вы должны иметь возможность устанавливать модули без sudo
и вы должны получить рабочую копию jshint.
Если ты не хочешь бежать nvm use v0.12
каждый раз, когда вы начинаете новый сеанс терминала, вы можете добавить nvm use v
на ваш ~/.bashrc
, v
не особенный, он просто будет соответствовать v*
и найдите последнюю версию. В качестве альтернативы вы можете жестко закодировать конкретную версию.