You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Forever运行npm serve?Shipit自动化部署命令执行遇阻求助

解决Forever命令执行失败返回帮助信息的问题

看起来你遇到的核心问题是Forever命令格式不正确——当你运行NODE_ENV=production forever start -c 'npm run serve'时,Forever无法识别完整的执行逻辑,因此返回了帮助文档。下面是两种可靠的解决方案,以及一些额外的优化建议:

方案1:直接修正Forever命令格式

Forever的-c参数是用来指定「执行脚本的命令」,而非直接填入完整的运行指令。要让它正确执行npm run serve,你需要用Shell来包裹整个命令,给Forever一个明确的执行入口。修改后的命令如下:

cd /var/www/server/current/front-end/ && NODE_ENV=production forever start -c "bash -c 'npm run serve'" .

这里末尾的.是一个「虚拟脚本路径」——因为我们实际是通过bash执行命令,不需要具体的JS脚本文件,用它来满足Forever的参数格式要求即可。

方案2:创建独立启动脚本(更清晰可靠)

如果觉得命令行写法太繁琐,推荐创建一个专门的启动脚本,后续维护也更方便:

  1. 在front-end目录下新建start-prod.sh文件,内容如下:
#!/bin/bash
export NODE_ENV=production
npm run serve
  1. 给脚本添加执行权限:
chmod +x /var/www/server/current/front-end/start-prod.sh
  1. 用Forever启动这个脚本:
cd /var/www/server/current/front-end/ && forever start start-prod.sh

额外注意事项

  • 你的serve脚本包含gulp-watch(文件监听热更新),但生产环境通常不需要这个功能。建议单独编写生产环境的启动脚本,比如:
    "scripts": {
      "serve": "gulp build && npm-run-all --parallel gulp-watch jekyll-serve",
      "serve:prod": "gulp build && jekyll-serve"
    }
    
    这样生产环境运行npm run serve:prod更高效,也避免不必要的资源占用。
  • 确保服务器上已安装所有依赖:执行cd /var/www/server/current/front-end/ && npm install,否则gulp或npm-run-all可能出现「命令找不到」的错误。

内容的提问来源于stack exchange,提问作者user82395214

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:43:26