Angular2 Quickstart lite-server crashes

2019-08-14 23:40发布

问题:

Good Morning people from the Internet,

Intro

While following the Angular2 Quickstart guide I have experienced many times issues where lite-server would crash just after executing npm start. Crash would look like this in your terminal:

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

Most common reasons (and solutions)

Most of the time the reason was one of the two:

  • lite-server was not shutdown properly. Solution: Killing all npm / node instances and restarting the server with npm start would do the trick.
  • dependencies are not up to date. Solution: simply deleting the node_modules directory, executing npm install to rebuild the dependencies would do the trick.

Other issue

However when reaching the step called 6.Routing the issue was a bit different. This time instead of crashing straightaway it was failing after typescript compilation:

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:

I have found the cause of the crash. And I felt like sharing the path so it might help others because there are many forum / stackoverflow threads around the same sort of issue but none solved this crash.

Basically, I looked at the stack trace to find which "module" was failing. Here it is

at FSReqWrap.oncomplete (fs.js:82:15)

and the solution was to execute the following command (see this ticket):

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

but instead of just executing it, I needed to understand why setting to 524288 the config item fs.inotify.max_user_watches into /etc/sysctl.conf which is after a system file. I found the answer here where it says and I quote:

Nodejs would report an error if there's too many files for watching due to system limitation, on Linux you can change that by adding fs.inotify.max_user_watches = 524288 to the file etc/sysctl.conf and restart the process

Hope it helps.