Angular2 Quickstart lite-сервер вылетает
Доброе утро, люди из Интернета,
вступление
Следуя руководству по быстрому запуску Angular2, я много раз сталкивался с проблемами, когда lite-server
произойдет сбой сразу после выполнения npm start
, Crash будет выглядеть так в вашем терминале:
ERR! Linux 3.19.0-51-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "run" "lite"
npm ERR! node v5.7.0
npm ERR! npm
v3.8.2
npm ERR! code ELIFECYCLE
npm ERR! angular2-quickstart@1.0.0 lite: `lite-server`
npm ERR!
Exit status 1
npm ERR!
npm ERR! Failed at the angular2-quickstart@1.0.0 lite script 'lite-server'.
npm
ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the angular2-quickstart package,
npm ERR! not with npm itself.
npm ERR!
Tell the author that this fails on your system:
npm ERR! lite-server
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs angular2-quickstart
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls angular2-quickstart
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/oscar/dev/cw/npm-debug.log
Наиболее распространенные причины (и решения)
Большую часть времени причина была одна из двух:
lite-server
не был выключен должным образом. Решение: уничтожение всех экземпляров npm / node и перезапуск сервера сnpm start
сделал бы трюк.- зависимости не актуальны. Решение: просто удалив
node_modules
каталог, выполняющийnpm install
перестроить зависимости сделало бы свое дело.
Другая проблема
Однако при достижении шага 6. Маршрутизация проблема была немного другой. На этот раз, вместо того, чтобы рухнуть сразу, он потерпел неудачу после компиляции машинописи:
16.03.15 16:33:49 200 GET /index.html
events.js:154
throw er; // Unhandled 'error' event
^
Error: watch node_modules/angular2/es6/prod/examples/platform/dom/debug/ts/debug_element_view_listener ENOSPC
at exports._errnoException (util.js:856:11)
...
at FSReqWrap.oncomplete (fs.js:82:15)
1 ответ
Я нашел причину аварии. И мне хотелось разделить путь, чтобы он мог помочь другим, потому что существует множество потоков форума / stackru, посвященных такой же проблеме, но ни одна не решила эту проблему.
По сути, я посмотрел на трассировку стека, чтобы определить, какой "модуль" не работает. Вот
at FSReqWrap.oncomplete (fs.js:82:15)
и решением было выполнить следующую команду (см. этот тикет):
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
но вместо того, чтобы просто выполнить его, мне нужно было понять, почему настройка 524288
пункт конфигурации fs.inotify.max_user_watches
в /etc/sysctl.conf
который после системного файла. Я нашел ответ здесь, где он говорит, и я цитирую:
Nodejs сообщит об ошибке, если для просмотра будет слишком много файлов из-за системных ограничений, в Linux вы можете это исправить, добавив fs.inotify.max_user_watches = 524288 в файл etc/sysctl.conf и перезапустив процесс
Надеюсь, поможет.