2

有没有办法grunt serve使用 PM2 运行?这样我可以将我的环境设置为在我的计算机启动时自动启动。

我发现了类似的东西:

cd /path/to/project/
pm2 start grunt --name website -- serve

但这似乎不起作用。查看时出现以下错误pm2 logs

PM2: 2015-10-19 18:23:44: Script C:\Users\...\AppData\Roaming\npm\grunt had too many unstable restarts (15). Stopped. "errored"

grunt-0 (err):     at Module._compile (module.js:413:25)
grunt-0 (err):     at Object.Module._extensions..js (module.js:452:10)
grunt-0 (err):     at Module.load (module.js:355:32)
grunt-0 (err):     at Function.Module._load (module.js:310:12)
grunt-0 (err):     at Function._load (C:\Users\cltessie\AppData\Roaming\npm\node_modules\pm2\node_modules\pmx\lib\transaction.js:62:21)
grunt-0 (err):     at Object.<anonymous> (C:\Users\cltessie\AppData\Roaming\npm\node_modules\pm2\lib\ProcessContainerFork.js:28:21)
grunt-0 (err):     at Module._compile (module.js:434:26)
grunt-0 (err):     at Object.Module._extensions..js (module.js:452:10)
grunt-0 (err):     at Module.load (module.js:355:32)
grunt-0 (err): SyntaxError: Unexpected token case
grunt-0 (err):     at exports.runInThisContext (vm.js:53:16)
grunt-0 (err):     at Module._compile (module.js:413:25)
grunt-0 (err):     at Object.Module._extensions..js (module.js:452:10)
grunt-0 (err):     at Module.load (module.js:355:32)
grunt-0 (err):     at Function.Module._load (module.js:310:12)
grunt-0 (err):     at Function._load (C:\Users\cltessie\AppData\Roaming\npm\node_modules\pm2\node_modules\pmx\lib\transaction.js:62:21)
grunt-0 (err):     at Object.<anonymous> (C:\Users\cltessie\AppData\Roaming\npm\node_modules\pm2\lib\ProcessContainerFork.js:28:21)
grunt-0 (err):     at Module._compile (module.js:434:26)
grunt-0 (err):     at Object.Module._extensions..js (module.js:452:10)
grunt-0 (err):     at Module.load (module.js:355:32)
4

2 回答 2

1

嘿,这对我有用。

cd /path/to/project/
pm2 start node_module/grunt/bin/grunt --name website -- serve

解释:PM2 将在启动后尝试执行该文件,并在本地路径中查找。我认为 grunt 是指 grunt 的全局安装。但是node_module/grunt/bin/grunt在PM2的范围内,所以可以运行这个文件。

我只将它用于本地开发,我不推荐将此解决方案用于生产,但在本地运行您的应用程序并检查 pm2 中的日志会很有帮助。此外,如果您在同一 pm2 实例中运行后端服务,并在执行“pm2 日志”时针对此堆栈测试某些内容,您可以按顺序查看所有服务的整个执行跟踪。即使您有一些像 Kibana 或 splunk 这样的集中式日志记录解决方案,这也非常困难,因为网络延迟总是会扰乱日志条目的顺序。

于 2018-08-17T15:56:56.167 回答
1

单独运行pm2 start grunt对我有用,但仍然无法解释为什么

于 2016-10-09T06:23:54.290 回答