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

Turborepo下TypeScript包:如何实现无src/dist前缀的导入结构

解决Turborepo中TypeScript包的导入路径问题

要实现import { Test } from "package-name/Test"这类无前缀的导入,核心是通过package.json的exports字段配置路径映射,同时配合TSConfig调整让TypeScript识别路径。以下是具体步骤:

1. 配置每个包的package.json

在单个包的package.json中添加exports字段,分别指定开发环境(指向src)和生产环境(指向dist)的路径,同时配置类型文件:

{
  "name": "package-name",
  "type": "module", // 若使用ESM需添加,CommonJS无需此字段
  "exports": {
    ".": {
      "import": "./dist/index.js",
      "require": "./dist/index.cjs",
      "types": "./dist/index.d.ts",
      "development": "./src/index.ts"
    },
    "./Test": {
      "import": "./dist/Test.js",
      "require": "./dist/Test.cjs",
      "types": "./dist/Test.d.ts",
      "development": "./src/Test.ts"
    }
    // 可继续添加其他子模块的映射,比如./Utils等
  },
  "scripts": {
    "build": "tsc" // 确保构建命令将src编译到dist目录
  }
}

该配置会让Node和TypeScript在开发时自动指向src下的文件,生产时指向构建后的dist文件,无需手动添加路径前缀。

2. 调整TypeScript配置

在单个包的tsconfig.json中,确保以下配置正确:

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "package-name/*": ["src/*"] // 辅助编辑器识别路径,避免语法报错
    },
    "declaration": true, // 必须开启,生成类型声明文件
    "outDir": "./dist", // 指定编译输出目录
    "rootDir": "./src" // 指定源码根目录
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "dist"]
}

如果是Turborepo根目录的tsconfig.json,可通过references字段引用各个包的配置,确保全局TS识别一致:

{
  "files": [],
  "references": [
    { "path": "./packages/package-name" }
    // 其他包的路径
  ]
}

3. 验证Turborepo构建流程

确保turbo.json中的构建管道正确输出dist目录:

{
  "pipeline": {
    "build": {
      "outputs": ["dist/**/*"],
      "dependsOn": ["^build"]
    },
    "dev": {
      "cache": false,
      "persistent": true // 开发模式持续监听文件变化
    }
  }
}

注意事项

  • 确保每个子模块(如Test.ts)在src目录下存在,且构建后dist目录会生成对应的Test.js和Test.d.ts文件
  • 若使用CommonJS,需调整exports中的import/require对应格式,比如将.js替换为.cjs
  • 若编辑器仍有路径报错,可重启TS服务(VSCode中按Ctrl+Shift+P,选择TypeScript: Restart TS Server)

内容的提问来源于stack exchange,提问作者Ben Rauzi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 06:30:10