GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak dostat Jshint do práce?

Nainstaloval jsem jshint pomocí sudo npm install -g jshint a zdá se, že to fungovalo:

$which jshint
/usr/local/bin/jshint

Přesto běží jshint nebo jeho ekvivalent úplné cesty nic nedělá. Ani to nehlásí chybu – prostě nic nedělá:

$jshint
$jshint --help
$jshint --verbose
$jshint --debug

$jshint admin.js
$jshint admin.js --verbose
$/usr/local/bin/jshint admin.js

Také jsem zkusil symbolické propojení nodejs podle této odpovědi:

$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.

Co mi tu chybí?

Upravit:zde je výstup z apt-cache policy nodejs npm . Právě používám standardní balíčky Ubuntu 14.04, takže na tom není nic zvláštního:

└─>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

Přijatá odpověď:

Oficiální repozitáře jsou nepořádek…

Instalace Node a npm přes oficiální repozitáře mi vždy dělala potíže. Mám podezření, že by to mohlo být způsobeno nástroji závislými na node , když skutečný příkaz na Ubuntu je nodejs , a proto vytvoření symbolického odkazu by mělo práce. Fungovalo to pro mě v mém rychlém testu na virtuálním počítači, ale protože to nefungovalo pro vás, zkusme něco jiného…

Nainstalujte tedy Node.JS jiným způsobem

Obecně dávám přednost instalaci Node na Ubuntu pomocí NVM. Tím se vyhnete problému s node příkaz není definován na Ubuntu a vyhýbá se nepořádku s oprávněními, který vyžaduje použití sudo k instalaci modulů npm.

Chcete-li se vrátit k čistému štítu, postupujte takto:

Odeberte všechny globální moduly, které jste nainstalovali pomocí npm (pokyny zde):

sudo npm list -g --depth=0. | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}'  | sudo xargs npm remove -g

Odebrat složku symbolického uzlu:

sudo rm /usr/bin/node

Odinstalujte kopie nodejs a npm které jste nainstalovali prostřednictvím repozitářů Ubuntu:

sudo apt-get remove --purge nodejs npm

Vyčistěte jakýkoli jiný cruft:

sudo apt-get autoremove

V tomto okamžiku which node , which nodejs , which npm a which jshint by všichni neměli nic vrátit.

Přeinstalujte Node a vynechejte oficiální úložiště

Získejte nejnovější kopii NVM (možná budete muset sudo apt-get install curl první):

curl https://raw.githubusercontent.com/creationix/nvm/v0.15.0/install.sh | bash

Řekněte svému shellu, aby použil nvm

source ~/.nvm/nvm.sh

Poté nainstalujte verzi uzlu

nvm install 0.12 # or whatever the latest version is

A řekněte nvm, kterou verzi Node chcete použít

nvm use 0.12

Nyní byste měli být schopni spustit Node s node měli byste být schopni instalovat moduly globálně bez sudo a měli byste skončit s pracovní kopií jshint.

Související:Klávesnice na obrazovce se objeví, kdykoli se dotknu obrazovky v Ubuntu?

Pokud nechcete spouštět nvm use v0.12 pokaždé, když zahájíte novou relaci terminálu, můžete přidat nvm use v do vašeho ~/.bashrc . v není speciální, bude pouze odpovídat v* a najít nejnovější verzi. Případně můžete napevno naprogramovat konkrétní verzi.


Ubuntu
  1. Jak nainstalovat Node.js a NPM na CentOS

  2. Jak nainstalovat Node.js a npm na Debian 11

  3. Jak zajistit, aby Uuencode fungoval?

  1. Jak zajistit, aby bezdrátová karta Broadcom Bcm4312 fungovala?

  2. Jak zprovoznit novou webovou kameru Tecknet?

  3. Jak nainstalovat Node.js a npm na Ubuntu 20.04

  1. Jak nainstalovat Node.js a NPM na Mac

  2. Jak nainstalovat Node.js &NPM na Ubuntu 18.04 a 20.04

  3. Jak nainstalovat Node.js a NPM na Windows