我正在开发一个 nodejs 应用程序,其中包含以下 npm 任务:
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"watch": "webpack --progress --watch",
"develop": "npm start && npm run watch",
"build": "webpack --progress",
"start": "node server.js"
}
并且我想在一个终端中的一个命令中运行两个正在进行的进程,也就是npm run develop
(它将运行node server.js
并webpack --progress --watch
。
我的问题是,我可以这样做吗?如果可以,这两个进程的日志将如何显示?
答案1
是的,你可以这样做。如果你有两个程序,即 prog1 和 prog2,那么请尝试以下操作:
#!/bin/bash
prog1 2> .errorprog1.log & prog2 2> .errorprog2.log &
这会将错误重定向到单独的日志。
你也可以尝试这个:
prog1 &
prog2 &
我发现这个线,其中包含许多对您有益的实用技巧。请仔细阅读。
希望这可以帮助。
谢谢。
答案2
&
只需使用fork 命令即可在后台运行该命令。因此
$ node server.js & $ webpack --progress --watch &
两个进程的输出将在终端中混合,这可能会造成混淆,因此您可以将它们记录到文件中
$ node server.js | tee log1 & $ webpack --progress --watch | tee log2 &
查看这有关分叉的更多详细信息。