1

早上好,来自互联网的人们,

介绍

在遵循Angular2 快速入门指南的过程中,我遇到了很多次lite-server在执行npm start. 崩溃在您的终端中看起来像这样:

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.Routing的步骤时,问题有点不同。这次不是直接崩溃,而是在 typescript 编译后失败:

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

1 回答 1

2

我已经找到了崩溃的原因。而且我想分享路径,因此它可能对其他人有所帮助,因为有很多论坛/stackoverflow 线程围绕着同一类型的问题,但没有一个解决了这次崩溃。

基本上,我查看了堆栈跟踪以找出哪个“模块”失败了。这里是

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 并重新启动进程来更改它

希望能帮助到你。

于 2016-03-15T16:28:33.780 回答