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
相关产品推荐
相关产品推荐

