6

经过数小时的调试,我终于找出了我的 Web 应用程序在 Windows 上崩溃的原因。NPM 依赖项有时会使用 记录消息,当运行Foreman + Nodemon组合console.error时,这似乎在 OSX 和 Windows 上具有不同的行为。

也许对这些工具有更多了解的人可以帮助阐明这一点?这是一个简单的应用程序来说明它:

应用程序.js

console.log('1');
console.error('2');
console.log('3');

在 OSX 和 Windows 7 上运行nodemon --exec node app.js都很好,并给出了预期的输出:

18 Feb 23:56:25 - [nodemon] v0.6.23
18 Feb 23:56:26 - [nodemon] watching: C:\project
18 Feb 23:56:26 - [nodemon] starting `node app.js`
1
2
3
18 Feb 23:56:26 - [nodemon] clean exit - waiting for changes before restart

现在,使用 Foreman 和 Procfile 包装调用,它看起来像这样:

# Procfile
app: nodemon --exec node app.js

在 OSX 上:

> foreman start

23:59:12 app.1  | started with pid 69229
23:59:12 app.1  | 18 Feb 23:59:12 - [nodemon] v0.7.2
23:59:12 app.1  | 18 Feb 23:59:12 - [nodemon] watching: /project
23:59:12 app.1  | 18 Feb 23:59:12 - [nodemon] starting `node app.js`
23:59:12 app.1  | 1
23:59:12 app.1  | 2
23:59:12 app.1  | 3
23:59:12 app.1  | 18 Feb 23:59:12 - [nodemon] clean exit - waiting for changes before restart

在 Windows 上:

> foreman start

23:59:40 app.1  | started with pid 2624
23:59:40 app.1  | 18 Feb 23:59:40 - [nodemon] v0.7.2
23:59:40 app.1  | 18 Feb 23:59:40 - [nodemon] watching: C:\project
23:59:40 app.1  | 18 Feb 23:59:40 - [nodemon] starting `node app.js`
23:59:40 app.1  | 1
23:59:40 app.1  | 18 Feb 23:59:40 - [nodemon] exception in nodemon killing node
23:59:40 app.1  | exited with code 3
23:59:40 system | sending SIGKILL to all processes

该应用程序只是崩溃,没有恢复,然后 Foreman 杀死了 Procfile 中声明的任何其他进程。

任何想法将不胜感激!

nodemon注意:我在 Windows (6.2.3) 上尝试了不同版本,结果相同

4

0 回答 0