使用PM2启动grunt服务

时间:2015-10-19 16:26:36

标签: gruntjs startup pm2 serve

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

我找到了类似的东西:

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)

2 个答案:

答案 0 :(得分:1)

单独运行 pm2 start grunt 为我工作,仍然无法解释为什么虽然

答案 1 :(得分: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),这也非常困难,因为网络滞后总是困扰着日志条目的顺序。