Подтвердить что ты не робот

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
4b9b3361

Ответ 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. Нам нужно увеличить это.