PM2启动npm - 启动错误

时间:2018-04-25 16:29:05

标签: node.js express npm pm2

我一直在使用" npm start"启动我的快速服务器(对于我的角度2 cli项目)几周,它工作正常,除了它在崩溃时不会自动重启。现在,为了让它自动重启,我尝试使用PM2。根据我的研究,它应该像运行

一样简单
pm2 start npm -- start

然而,这让我"停止"立即身份。做" pm2显示"让我看看npm-error-0.log中的错误,在那里我看到了这个错误

SyntaxError: Unexpected token :
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:588:28)
    at Object.Module._extensions..js (module.js:635:10)
    at Module.load (module.js:545:32)
    at tryModuleLoad (module.js:508:12)
    at Function.Module._load (module.js:500:3)
    at Object.<anonymous> (C:\Users\mingliu_99\AppData\Roaming\npm\node_modules\pm2\lib\ProcessContainerFork.js:83:21)
    at Module._compile (module.js:624:30)
    at Object.Module._extensions..js (module.js:635:10)
C:\PROGRAM FILES\NODEJS\NPM.CMD:1
(function (exports, require, module, __filename, __dirname) { :: Created by npm, please don't edit manually.
                                                              ^

这是我在package.json文件中的启动脚本:

"start": "cross-env NODE_ENV=production node dist-prod/server.js"

那么,这里的问题是什么?

顺便说一下,当我尝试使用这个命令时

pm2 start dist-prod/server.js

它似乎开始很好(具有绿色在线状态)。但是,服务器没有服务,这可能是因为缺少env参数。

更新:

我发现this,结果证明是Windows 10上的pm2问题。

该帖子末尾建议的解决方法似乎工作正常。

基本上,首先安装node-cmd,然后创建一个startscript.js:

var cmd=require('node-cmd'); 
cmd.run('npm start');

然后运行

pm2 start startscript.js

1 个答案:

答案 0 :(得分:0)

您必须参考服务器设置脚本 例如。 pm2 start app:name backend scripts

在这种情况下,您的脚本是侦听服务器的任何script.js。

要使用pm2 start app:name backend脚本--watch

立即观看和重新加载