Saya mendapat kesalahan ini menggunakan jshint melalui subproses python di Ubuntu 12.10 64 bit.
node.js:464
var cwd = process.cwd();
^
Error: ENOENT, no such file or directory
at Function.resolveArgv0 (node.js:464:23)
at startup (node.js:51:13)
at node.js:555:3
Ini disebabkan karena Anda menghapus atau memindahkan direktori dari bawahnya dan direktori saat ini tidak dapat ditentukan.
Bagaimana cara mengetahui apakah Anda mengalami masalah ini:
Jalankan perintah cd .
(Jika Anda mendapatkan kesalahan ini maka Anda memiliki masalah ini).
el@apollo:~/foo$ cd .
cd: error retrieving current directory: getcwd: cannot access parent
directories: No such file or director
Anda mencoba mengubah direktori menjadi dir Anda saat ini, dan tidak bisa.
Cara mereproduksi kesalahan:
jshint dipengaruhi oleh kesalahan ini. Buat direktori foo
, masukkan ke dalamnya, buat file bernamamyjavascript.js
cd /home/el
mkdir foo
cd foo
touch myjavascript.js
jshint myjavascript.js
jshint berjalan dengan benar, katanya tidak ada kesalahan yang benar.
Buka terminal ke-2, dan rm -rf
direktori /home/el/foo
keluar dari bawah.
rm -rf /home/el/foo
Jalankan jshint myjavascript.js
lagi dari terminal pertama Anda dan Anda mendapatkan kesalahan:
el@apollo:~/foo$ jshint myjavascript.js
node.js:464
var cwd = process.cwd();
^
Error: ENOENT, no such file or directory
at Function.resolveArgv0 (node.js:464:23)
at startup (node.js:51:13)
at node.js:555:3
Direktori hilang! Dan bahkan jika Anda menggantinya dengan konten yang sama, ia memiliki tanda tangan yang berbeda dan terminal tidak dapat pulih, metode getcwd
ini tidak dapat mengetahui apa direktori saat ini.
Tiga solusi:
Terminal bingung tentang apa direktori saat ini karena hilang atau tanda tangannya telah berubah. Lakukan salah satu dari ini untuk memperbaikinya:
Jalankan perintah cd ..
sampai Anda berhenti mendapatkan kesalahan. Ini menyinkronkan terminal dengan sistem file. Kemudian cd kembali ke direktori Anda. Coba lagi. Kesalahan hilang.
Gunakan su youruser
di terminal, masukkan kata sandi. Ini menyegarkan dan membawa Anda kembali ke direktori yang sama.
Tutup dan buka kembali terminal yang membuang tanda tangan direktori basi. Atau kirim nastymail ke program apa pun (jshint) atau ribuan program lain yang tidak dapat mentolerir atau memulihkan dari tanda tangan direktori basi.
cd [PATH]
shell Anda untuk pergi ke yang sudah ada.