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

部署TypeScript Express服务到Heroku提示ts-node不存在问题咨询

问题修复方案

你判断的修改方向完全正确,将start脚本改为指向编译后的JS文件即可解决当前启动报错问题。

核心报错原因

  • ts-node: not found是因为ts-node属于开发依赖,默认放在package.json的devDependencies字段中,Heroku生产环境部署时会自动卸载所有开发依赖,因此启动时无法找到该命令。
  • 你使用的第三方TypeScript构建包仅帮你完成了TS代码编译生成dist目录的步骤,未修改启动逻辑,因此即便编译成功,启动时调用ts-node还是会失败。

具体操作步骤

  1. 修改package.json中的start脚本配置:
"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node dist/src/index.js",
    "dev": "ts-node-dev src/index.ts",
    "build": "tsc",
    // 其余脚本保持不变
}
  1. 建议切换回官方heroku/nodejs构建包,比第三方构建包兼容性和稳定性更高,官方构建包会自动识别build脚本完成TS编译,不需要额外配置,切换命令为:
    heroku buildpacks:set heroku/nodejs
  2. 提交修改后的配置重新部署即可正常启动服务。

替代Heroku的托管平台推荐

适合托管Express服务+PostgreSQL数据库的靠谱平台包括:

  • Render:内置Node.js运行环境和PostgreSQL托管服务,免费额度无强制休眠,部署流程简单,适合个人和小型项目使用。
  • Railway:提供开箱即用的各类服务部署模板,Node.js和PostgreSQL都可以一键创建,有每月免费额度,配置灵活度高。
  • Vercel:对Node.js生态适配良好,支持无服务器函数部署Express服务,配合官方Vercel Postgres使用体验流畅,适合全栈项目。
  • Fly.io:支持容器化部署应用,可按需创建PostgreSQL实例,全球节点访问速度表现优秀,适合有一定用户量的项目使用。
  • 国内云厂商轻量应用服务器:阿里云、腾讯云的轻量服务器产品,自主度高,适合有基础运维能力的用户长期使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:45:01