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

