Я получил эту ошибку, используя jshint через подпроцесс python на Ubuntu 12.10 64 бит.
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
Это вызвано тем, что вы удалили или переместили каталог из-под него, и текущий каталог не может быть определен.
Как узнать, если у вас возникла эта проблема:
Запустите команду cd .
(если вы получаете эту ошибку, то у вас есть эта проблема).
el@apollo:~/foo$ cd .
cd: error retrieving current directory: getcwd: cannot access parent
directories: No such file or director
Вы пытались изменить каталог на текущий каталог, и не смогли.
Как воспроизвести ошибку:
Эта ошибка затрагивает jshint. Создайте каталог foo
, перейдите в него, создайте файл с именемmyjavascript.js
cd /home/el
mkdir foo
cd foo
touch myjavascript.js
jshint myjavascript.js
Jshint работает правильно, он говорит, что нет ошибок, которые являются правильными.
Откройте 2-й терминал и rm -rf
каталог /home/el/foo
снизу.
rm -rf /home/el/foo
Запустите jshint myjavascript.js
снова из вашего первого терминала, и вы получите ошибку:
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
Каталог исчез! И даже если вы замените его тем же содержимым, у него будет другая подпись, и терминал не сможет восстановить, метод getcwd
не может знать, каков текущий каталог.
Три решения:
Терминал не понимает, что такое текущий каталог, потому что его нет или его подпись изменилась. Сделайте одно из них, чтобы исправить это:
Запускайте команду, cd ..
пока не перестанете получать ошибки. Это повторно синхронизирует терминал с файловой системой. Затем перейдите в ваш каталог. Попробуйте еще раз. Ошибка уходит.
Используйте su youruser
в терминале, введите пароль. Он обновляет и возвращает вас в тот же каталог.
Закройте и снова откройте терминал, который удаляет устаревшие подписи каталога. Или отправьте настойчивое сообщение какой-либо программе (jshint) или тысячам других программ, которые не могут переносить устаревшие подписи каталогов или восстанавливать их.
cd [PATH]
вашу оболочку, чтобы перейти к существующей.