Saya menginstal jshint menggunakan sudo npm install -g jshint
, dan sepertinya berhasil:
$which jshint
/usr/local/bin/jshint
Namun menjalankan jshint
atau jalur lengkapnya yang setara sepertinya tidak melakukan apa-apa. Itu juga tidak memberikan kesalahan–tidak melakukan apa-apa:
$jshint
$jshint --help
$jshint --verbose
$jshint --debug
$jshint admin.js
$jshint admin.js --verbose
$/usr/local/bin/jshint admin.js
Saya juga mencoba menghubungkan nodejs per jawaban ini:
$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.
Apa yang saya lewatkan di sini?
Sunting:inilah output dari apt-cache policy nodejs npm
. Saya hanya menggunakan paket standar Ubuntu 14.04, jadi tidak ada yang istimewa dari ini:
└─>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
Jawaban yang Diterima:
Repo resmi berantakan…
Menginstal Node dan npm melalui repositori resmi selalu memberi saya masalah. Saya menduga ini mungkin karena alat yang bergantung pada node
, ketika perintah sebenarnya di Ubuntu adalah nodejs
, itulah sebabnya membuat symlink harus kerja. Ini berhasil untuk saya dalam pengujian cepat saya di mesin virtual, tetapi karena itu tidak berhasil untuk Anda, mari coba yang lain…
Jadi, instal Node.JS dengan cara yang berbeda
Saya biasanya lebih suka menginstal Node di Ubuntu menggunakan NVM. Ini menghindari masalah node
perintah tidak didefinisikan di Ubuntu, dan menghindari kekacauan izin yang memerlukan penggunaan sudo
untuk menginstal modul npm.
Lakukan hal berikut untuk kembali ke awal yang bersih:
Hapus semua modul global yang telah Anda instal dengan npm (petunjuk di sini):
sudo npm list -g --depth=0. | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
Hapus folder simpul yang disinkronkan:
sudo rm /usr/bin/node
Copot pemasangan salinan nodejs
dan npm
yang Anda instal melalui repositori Ubuntu:
sudo apt-get remove --purge nodejs npm
Bersihkan kotoran lainnya:
sudo apt-get autoremove
Pada titik ini, which node
, which nodejs
, which npm
, dan which jshint
seharusnya semua tidak mengembalikan apa pun.
Instal ulang Node, lewati repositori resmi
Ambil salinan NVM terbaru (Anda mungkin perlu sudo apt-get install curl
pertama):
curl https://raw.githubusercontent.com/creationix/nvm/v0.15.0/install.sh | bash
Beri tahu shell Anda untuk menggunakan nvm
source ~/.nvm/nvm.sh
Kemudian instal versi simpul
nvm install 0.12 # or whatever the latest version is
Dan beri tahu nvm versi Node mana yang ingin Anda gunakan
nvm use 0.12
Sekarang Anda seharusnya dapat menjalankan Node dengan node
perintah, Anda harus dapat menginstal modul secara global tanpa sudo
, dan Anda akan mendapatkan salinan jshint yang berfungsi.
Jika Anda tidak ingin menjalankan nvm use v0.12
setiap kali Anda memulai sesi terminal baru, Anda dapat menambahkan nvm use v
ke ~/.bashrc
. Anda . v
tidak istimewa, itu hanya akan cocok dengan v*
dan temukan versi terbaru. Atau Anda dapat membuat hard-code versi tertentu.