Как я могу заставить 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

Я также попробовал 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
7
задан 13 April 2017 в 05:23

1 ответ

Официальные repos являются путаницей...

Установка Узла и npm через официальные репозитории всегда давала мне проблему. Я подозреваю, что это могло произойти из-за инструментов в зависимости от node, когда фактическая команда на Ubuntu nodejs, который является, почему создание символьной ссылки должно работать. Это работало на меня в моем быстром тесте в виртуальной машине, но так как это не работало на Вас, давайте попробуем что-то еще...

Так, Узел установки. JS другой путь

Я обычно предпочитаю устанавливать Узел на 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* и найдите последнюю версию. Кроме того, Вы могли твердый код определенная версия.

9
ответ дан 23 November 2019 в 06:29

Другие вопросы по тегам:

Похожие вопросы: