Typescript全栈项目部署Heroku出现H10报错App crashed问题求助
Heroku部署TypeScript全栈应用报错解决方案
错误根因
从报错日志Error: Cannot find module '/app/index.js'可定位核心问题是启动路径配置错误:
你的tsconfig.json中outDir参数设置为dist,所有TypeScript编译后的JavaScript文件都会输出到dist目录下;且postinstall脚本执行后会删除src目录,项目根目录不存在index.js文件,启动命令指向的路径无效。
需修改的配置
- 修改
package.json的scripts字段:将原启动命令
替换为"start": "node index.js""start": "node dist/index.js" - 同步修改
Procfile配置:将原配置
替换为web: node index.jsweb: node dist/index.js
注意:如果你的项目入口TS文件不是根目录下的index.ts,而是src/server/server.ts这类路径,编译后入口JS路径为dist/server/server.js,需要将上述启动命令中的路径替换为实际生成的入口JS路径。
额外排查项
- 确认
tsconfig.json的include字段已经覆盖了入口TS文件,避免编译后未生成对应的入口JS文件 - 本地执行
tsc命令,查看生成的dist目录结构,确认入口JS的实际路径后再配置启动命令 - 可在
postinstall脚本中临时增加ls dist命令,部署时通过日志确认文件是否生成到位
内容的提问来源于stack exchange,提问作者SwizzleStix617
相关产品推荐
相关产品推荐

