Node.JS: Получение ошибки: [nodemon] Внутренние часы не работают: смотрите ENOSPC
Я только что установил Node.js
в мою операционную систему Ubuntu 14.04
в первый раз. Я также установил npm
. Следующим шагом в моем процессе установки была установка nodemon
. Все это получилось отлично.
Но когда я запускаю nodemon
, введя nodemon app.js
в моей командной строке, я получаю следующую ошибку...
[nodemon] 1.8.1
[nodemon] to restart at any time, enter
rs
[nodemon] watching: *.*
[nodemon] starting
node app.js
[nodemon] Internal watch failed: watch ENOSPC
В командной строке ниже ошибки...
[email protected]:~/Desktop/coding_dojo/week-9/javascript/node/testing_node$ Hello World
Почему это происходит? Это нормальное поведение для nodemon? Если нет, как я могу это исправить?
Боковые заметки...
1) app.js
- это файл Javascript
с console.log(111)
внутри него.
2) node
версия v0.10.25
3) npm
версия 1.3.10
4) nodemon
версия 1.8.1
5) ubuntu
версия - это...
Distributor ID: Ubuntu
Description: Ubuntu 14.04.3 LTS
Release: 14.04
Codename: trusty
Ответы
Ответ 1
Похоже, что мои максимальные порты не были настроены правильно. Я запустил следующий код, и он сработал...
echo fs.inotify.max_user_watches=582222 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Эта команда позволяет увеличить количество часов, разрешенных для одного пользователя. По умолчанию число может быть низким (например, 8192). Когда nodemon
пытается посмотреть большое количество каталогов для изменений, он должен создать несколько часов, которые могут превзойти этот предел.
Вы также можете решить эту проблему:
sudo sysctl fs.inotify.max_user_watches=582222 && sudo sysctl -p
Но то, как оно было написано первым, сделает это изменение постоянным.
Ответ 2
Эрик. Вы можете просто убить все остальные процессы узла
узел pkill -f
а затем снова перезапустите сервер. Тогда все будет хорошо.
Ответ 3
В соответствии с обсуждением здесь, ENOSPC
означает Error No more hard-disk space available
. Причина, по которой эта значительная память требуется nodemon
или gulp-nodemon
(в моем случае), заключается в том, что она просматривает содержимое папки, которой оно не должно. Чтобы исправить, что nodemon имеет параметр ignore
, который можно использовать, чтобы сказать nodemon, что не смотреть. Посмотрите пример конфигурации nodemon здесь.
Ответ 4
[nodemon] Internal watch failed: watch /home/Document/nmmExpressServer/bin ENOSPC
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: 'nodemon ./bin/www'
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start script.
Это ошибка, которую я получил при запуске nodemon./bin/www
.
Решение закрыло окно Atom, в котором в окне проекта был открыт весь каталог папок.
Я не знаю почему, но я предполагаю, что Atom и nodemon используют похожие процессы для просмотра файлов/папок.
Ответ 5
На запущенном сервере сервера отображаются следующие ошибки и решения:
nodemon server.js
[nodemon] 1.17.2
[nodemon] для перезапуска в любое время, введите rs
[nodemon] смотреть:.
[nodemon] начальный node server.js
[nodemon] Внутренние часы потерпели неудачу: watch/home/aurum304/jin ENOSPC
sudo pkill -f node
или же
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Ответ 6
Меня устраивает.
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Ответ 7
Добавьте nodemon.json
конфигурации nodemon.json
в корневую папку и укажите шаблоны игнорирования, например:
nodemon.json
{
"ignore": [
"*.test.js",
"dist/*"
]
}
- Обратите внимание, что по умолчанию
.git
, node_modules
, bower_components
, .nyc_output
, coverage
и .sass-cache
игнорируются, поэтому вам не нужно добавлять их в свою конфигурацию.
Объяснение: Эта ошибка возникает из-за того, что вы превысили максимальное количество наблюдателей, разрешенных вашей системой (т.е. nodemon
не имеет больше места на диске для просмотра всех файлов, что, вероятно, означает, что вы смотрите не важные файлы). Таким образом, вы игнорируете не важные файлы, которые вам не нужны в отношении изменений в них, например, вывод сборки или тестовые примеры.
Ответ 8
У меня была такая же ошибка, но в Ubuntu 14.04 внутри Windows 10 (Bash на Ubuntu в Windows). Все, что я сделал, чтобы преодолеть эту ошибку, - это обновить обновление для авторов, что позволило мне установить версию Ubuntu bash версии 16.04, а затем установить новую версию node (это шаги) Я установил также новейшую версию npm, а затем nodemon начал работать правильно.
Ответ 9
Вместо указания списка игнорируемых каталогов (например, отрицательных) вы также можете указать список каталогов для просмотра (например, положительный):
nodemon --watch dir1 --watch dir2 dir1/examples/index.js
В моем конкретном случае у меня был один каталог, который я хотел посмотреть, и около девяти, которые я хотел проигнорировать, поэтому указание "--watch" было намного проще, чем указание "--ignore")
Ответ 10
После запуска nodemon я получил следующую ошибку
[nodemon] 1.18.6
[0] [nodemon] to restart at any time, enter 'rs'
[0] [nodemon] watching: *.*
[0] [nodemon] starting 'node server.js'
[0] [nodemon] Internal watch failed: ENOSPC: no space left on device, watch 'some filename'
[0] npm ERR! code ELIFECYCLE
[0] npm ERR! errno 1
[0] npm ERR! [email protected] server: 'nodemon server.js'
[0] npm ERR! Exit status 1
[0] npm ERR!
[0] npm ERR! Failed at the [email protected] server script.'
Но они были решены после выполнения этой команды:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Ответ 11
в моем случае закрытие кода Visual Studio, а затем запуск сервера сделал свое дело
Операционная система - Ubuntu 16,4 лтс
версия node.js - 8.11.1
версия npm - 6.0.0
Ответ 12
Проблема устранена командой ниже
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
для Ubuntu ограничение по умолчанию установлено на 8192. Нам нужно увеличить это.