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

Yarn PNP环境下如何在tsconfig中引入私有Git自定义类型定义?

解决Yarn PNP下私有Git自定义类型定义的引入问题

方法1:用tsconfig paths映射缓存路径

  • 先通过Yarn命令获取私有类型包的准确缓存路径:
    yarn pnp resolve @your-private-types-package
    
  • 在tsconfig.json的compilerOptions里配置paths,把包名映射到缓存中的类型文件目录:
    {
      "compilerOptions": {
        "baseUrl": ".",
        "paths": {
          "@your-private-types-package/*": ["[替换为获取到的缓存路径]/types/*"]
        }
      }
    }
    

方法2:通过.yarnrc.yml暴露类型入口

  • 在项目根目录的.yarnrc.yml里添加packageExtensions,指定私有包的类型文件位置:
    packageExtensions:
      "@your-private-types-package@*":
        types: "./index.d.ts"
    
  • 接着在tsconfig.json里调整typeRoots,让TypeScript能扫描到Yarn缓存里的类型:
    {
      "compilerOptions": {
        "typeRoots": [
          "./.yarn/cache/**/node_modules/@types",
          "./.yarn/cache/**/node_modules/@your-private-types-package"
        ]
      }
    }
    

方法3:转为本地工作区依赖

  • 把私有Git仓库克隆到项目内的子目录(比如./packages/custom-types),然后在项目根目录的package.json里配置工作区:
    {
      "workspaces": ["./packages/*"],
      "devDependencies": {
        "@your-private-types-package": "workspace:./packages/custom-types"
      }
    }
    
  • 这种方式下TypeScript会直接读取本地文件,不用依赖Yarn缓存路径,维护起来更直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 09:02:15