NodeJS项目本地构建正常 Heroku部署报NodeJS.Timeout错误失败
问题根因
你遇到的报错是TypeScript编译时找不到内置类型定义导致的,本地能正常构建是因为你的本地开发环境已经全局或者历史安装过Node.js的类型声明包,Heroku的纯净构建环境没有对应依赖所以报错。你之前尝试额外安装Timeout相关依赖属于走错了方向,才会触发node-gyp冲突,Node.js的Timeout是内置类型,不需要单独安装依赖。
可行解决步骤
- 第一步:安装对应版本的Node.js类型声明包
你项目用的Node版本是14.x,执行以下命令添加依赖到开发依赖即可:npm install @types/node@14 --save-dev - 第二步:调整tsconfig.json配置
在你项目根目录的tsconfig.json的compilerOptions字段中做两处修改:- 在
lib数组中添加ES2020,解决BigInt找不到的报错 - 可选:添加
"skipLibCheck": true,直接跳过第三方依赖的类型检查,不会影响你自己业务代码的类型校验,还能避免后续其他第三方库的类型问题阻断构建
- 在
- 第三步:清理本地依赖缓存重新测试构建
删除本地node_modules、package-lock.json或者yarn.lock文件之后重新执行依赖安装和构建,确认本地能正常编译再推送到Heroku即可。
内容的提问来源于stack exchange,提问作者AndyMoore
相关产品推荐
相关产品推荐

