我一直在使用" 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
答案 0 :(得分:0)
您必须参考服务器设置脚本
例如。 pm2 start app:name backend scripts
在这种情况下,您的脚本是侦听服务器的任何script.js。
要使用pm2 start app:name backend
脚本--watch