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

使用Turborepo/Pnpm时,VSCode不识别package.json exports配置求助

解决VSCode模块查找错误的方案

1. 给my-package配置TypeScript路径映射

在packages/my-package/tsconfig.json里添加baseUrl和paths,同时确保类型声明生成配置开启:

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@my-repo/my-package/*": ["./src/*"]
    },
    "rootDir": "./src",
    "declaration": true, // 必须开启,生成类型声明文件
    "declarationDir": "./types" // 指定类型声明输出目录
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules"]
}

接着在my-package/package.json里补充类型相关的导出配置,让TypeScript能识别路径对应的类型:

{
  "exports": {
    "*": ["./src/*", "./types/*"]
  },
  "typesVersions": {
    "*": {
      "*": ["./types/*"]
    }
  }
}

2. 同步monorepo根目录的TS配置

如果项目根目录有tsconfig.json,要添加对my-package的引用,确保TS服务能识别子包:

{
  "files": [],
  "references": [
    { "path": "./packages/my-package" }
  ]
}

3. 重启VSCode的TypeScript服务

配置完成后,按下Ctrl+Shift+P(Windows)/Cmd+Shift+P(Mac),执行TypeScript: Restart TS Server,让语言服务重新加载配置。

关于baseURL/rootDir的作用

  • baseUrl设定TS解析模块的基准路径,配合paths可以把@my-repo/my-package/*直接映射到src/*,让VSCode能定位到源码和类型文件。
  • rootDir明确源码根目录,确保编译生成的类型声明路径和实际导入路径匹配。

注意:如果没开启declaration选项,TS不会生成类型声明,VSCode必然会提示类型找不到,这是关键前提。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 18:02:17