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

Cyclic.sh未识别package.json启动脚本,Express+TS部署报错求助

解决Cyclic.sh部署TypeScript Express应用启动失败问题

问题背景

将集成TypeScript的Express.js应用部署到Cyclic.sh,已关联GitHub仓库,构建流程显示成功,但运行时抛出错误:

ERROR: Failed to run 'node index.js'

完整错误日志提示找不到dotenv模块,且**/var/task/package.json不存在**。本地运行一切正常,但Cyclic.sh未执行配置的启动命令node dist/index.js。

排查与解决方案

1. 手动指定Cyclic启动命令

Cyclic有时无法自动识别package.json中的scripts.start配置,需手动指定:

  • 进入Cyclic项目控制台,打开「Settings」→「Build & Deploy」
  • 在「Start Command」输入框中填写node dist/index.js
  • 保存设置后,手动触发重新部署

2. 验证package.json配置正确性

确保package.json在仓库根目录,且包含以下关键配置:

{
  "scripts": {
    "build": "tsc", // 确保TypeScript编译产物输出到dist目录
    "start": "node dist/index.js"
  },
  "dependencies": {
    "dotenv": "^x.x.x", // 确认dotenv在dependencies而非devDependencies
    "express": "^x.x.x"
    // 其他生产依赖
  },
  "devDependencies": {
    "typescript": "^x.x.x"
    // 其他开发依赖
  }
}

本地执行npm run build确认dist目录生成正确的编译文件。

3. 确认package.json位置

Cyclic默认读取仓库根目录的package.json,若文件放在子目录中,平台会无法识别,导致/var/task/package.json不存在错误,需将package.json移至仓库根目录。

4. 检查依赖安装配置

  • 确保dotenv在dependencies字段下,生产环境不会安装devDependencies中的包,若放在dev依赖中会导致部署后缺失。
  • 若使用npm ci安装依赖,确保package-lock.json已提交到GitHub,Cyclic会依赖该文件安装精确版本的依赖。

5. 重新触发部署

修改配置后,提交代码到GitHub仓库,或在Cyclic控制台点击「Redeploy」按钮,确保平台拉取最新的配置与代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:35:22