NestJS项目升级Node后编译报错:ts.createNodeArray is not a function
解决NestJS迁移Node v19.7后
ts.createNodeArray is not a function报错问题 问题根源
你遇到的ts.createNodeArray is not a function错误,核心是依赖版本不兼容:
- 项目使用NestJS v8.x版本,但升级了TypeScript到v5.0.3。NestJS v8对TypeScript 5.x无兼容性支持,
ts.createNodeArray是TypeScript 4.x及之前的API,在TS5中已被移除/重构,而旧版Nest CLI(v8.2.8)仍在调用这个废弃API,导致报错。
解决方案
方案1:降级TypeScript到NestJS v8兼容版本
NestJS v8官方支持TypeScript 4.0~4.9.x,操作步骤:
- 修改
package.json中的typescript版本为^4.9.5(推荐稳定版) - 清理依赖并重新安装:
rm -rf node_modules package-lock.json npm cache clean --force npm install
- 再次执行
npm run start-watch
方案2:升级NestJS到支持TypeScript 5.x的版本
若想保留TypeScript 5.x特性,需将NestJS核心依赖升级到v9或v10(v9开始支持TS5):
- 更新
package.json中所有@nestjs/*依赖到v9.x稳定版(比如@nestjs/common、@nestjs/core、@nestjs/cli等),确保版本号一致 - 清理依赖重新安装:
rm -rf node_modules package-lock.json npm cache clean --force npm install
- 检查项目代码,修复NestJS版本升级带来的破坏性变更(如装饰器语法、API调整等)
额外注意事项
- 确保
@nestjs/cli版本与NestJS核心版本保持一致,避免CLI与框架版本不匹配引发问题 - 升级依赖后,核对
tsconfig.json编译配置是否符合对应NestJS版本的要求(比如target、module等选项)
内容的提问来源于stack exchange,提问作者ysdev
相关产品推荐
相关产品推荐

