使用Forever启动http-server遇spawn http ENOENT错误及PM2启动问题求助
Forever 解决方案
问题原因
Error: spawn http ENOENT 是因为Windows环境下Forever无法直接识别http-server命令作为可执行文件,需要指定其实际的.cmd脚本路径,或调整参数传递格式。
解决命令
方式1:指定http-server完整路径
找到npm全局安装的http-server.cmd路径(通常在C:\Users\你的用户名\AppData\Roaming\npm下),直接调用该文件:
forever start --uid "host-manager-app-30004" -l C:\Users\cross.kalp\khm\host-manager-app.log --append "C:\Users\cross.kalp\AppData\Roaming\npm\http-server.cmd" -p 30004 ./dist
方式2:调整参数传递格式
将-c参数后的命令简化为http-server,并把端口、目录参数直接放在命令末尾:
forever start --uid "host-manager-app-30004" -l C:\Users\cross.kalp\khm\host-manager-app.log --append -c http-server ./dist -p 30004
PM2 解决方案
问题原因
SyntaxError: missing ) after argument list 是因为路径格式错误(正斜杠未处理),且未指定服务根目录./dist,导致PM2解析命令时出错。
解决命令
方式1:直接调用http-server命令
如果http-server已全局安装,直接用命令启动,参数放在--之后:
pm2 start http-server --name host-manager-app-30004 --log C:\Users\cross.kalp\khm\host-manager-app.log -- -p 30004 ./dist
方式2:指定完整.cmd路径
若直接调用命令无效,指定http-server的完整.cmd路径:
pm2 start "C:\Users\cross.kalp\AppData\Roaming\npm\http-server.cmd" --name host-manager-app-30004 --log C:\Users\cross.kalp\khm\host-manager-app.log -- -p 30004 ./dist
内容的提问来源于stack exchange,提问作者ckalp67
相关产品推荐
相关产品推荐

