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

ts-node无法正确解析共享tsconfig符号链接问题排查

解决ts-node无法识别TurboRepo共享tsconfig的问题

1. 补全共享tsconfig包的入口配置

在packages/typescript-config/package.json中添加入口声明,让TypeScript能正确解析包内的配置文件路径:

{
  "name": "@Repo/typescript-config",
  "version": "0.0.0",
  "private": true,
  "main": "base.json",
  "exports": {
    ".": "./base.json"
  }
}

TypeScript解析extends中的包名时,会依赖包的main或exports字段定位配置文件,缺少该配置会导致ts-node无法找到base.json。

2. 运行ts-node时显式指定项目配置

执行ts-node命令时,明确指定cli包的tsconfig路径,确保ts-node使用正确的配置上下文:

ts-node --project packages/cli/tsconfig.json packages/cli/src/cli.ts

若在cli包目录下运行,可简化为:

ts-node --project ./tsconfig.json src/cli.ts

3. 配置ts-node的模块解析策略

如果上述方法无效,可在cli包的package.json中添加ts-node配置,强制适配PNPM的workspace链接逻辑:

{
  "ts-node": {
    "compilerOptions": {
      "moduleResolution": "node16"
    }
  }
}

或直接在运行时添加参数:

ts-node --compiler-options '{"moduleResolution":"node16"}' src/cli.ts

4. 临时替代方案:使用相对路径(不推荐)

若不想修改包配置,可临时将cli的tsconfig中的extends改为相对路径:

{
  "extends": "../../typescript-config/base.json",
  "include": ["src"]
}

此方法会丢失workspace包的版本管理优势,仅适合临时测试场景。


内容的提问来源于stack exchange,提问作者Dan Lincoln

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 23:47:29