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

ts-node直接执行报错 仅能通过npm run脚本间接正常运行问题

问题产生原因

从错误堆栈的路径可以直接定位根因:

  • 直接在终端执行ts-node src/main.ts时,系统调用的是全局安装在/usr/lib/node_modules/路径下的ts-node,这个全局安装的ts-node版本过低,使用的是旧版TypeScript类型解析接口签名。
  • 项目本地devDependencies中安装的TypeScript版本是4.7.4,该版本调整了resolveTypeReferenceDirective接口的参数校验逻辑,旧版ts-node传入非字符串类型参数时会直接触发TS内部的断言报错,和错误提示中描述的「wrapping package working with an outdated signature」完全吻合。
  • 执行npm run start时,npm会自动将项目本地node_modules/.bin目录放在环境变量优先级最高的位置,调用的是项目本地安装的ts-node@10.8.1,和本地TypeScript版本完全匹配,因此可以正常运行。
修复方案

选择任意一种方式即可解决问题:

  • 升级全局ts-node到最新兼容版本,执行以下命令:
    npm install -g ts-node@latest
    
    升级完成后直接执行ts-node src/main.ts即可正常启动程序。
  • 不依赖全局ts-node,使用npx调用项目本地安装的ts-node执行:
    npx ts-node src/main.ts
    
    npx会默认优先查找项目本地依赖中的对应包版本,执行逻辑和npm脚本完全一致。
  • 直接显式调用项目本地bin目录下的ts-node执行,无需升级全局包:
    ./node_modules/.bin/ts-node src/main.ts
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 21:36:38