VSCode无法识别从GitHub安装的Shared仓库类型,如何解决?
要让VSCode识别通过GitHub URL安装的Shared仓库中的类型,需要从Shared仓库的配置和Consumer仓库的配置两方面调整:
一、配置Shared仓库
- 添加类型入口配置
在Shared仓库的package.json中添加types字段,指定类型文件的入口路径。推荐在Shared根目录创建一个统一的导出入口文件,方便Consumer仓库导入:
- 首先在Shared根目录创建
index.ts,集中导出所有需要共享的类型和代码:
// Shared/index.ts export { User } from './types/User'; export { UserModel } from './models/UserModel';
- 然后修改Shared的
package.json,添加以下字段:
{ "name": "shared", "main": "./index.ts", // 代码入口 "types": "./index.ts" // 类型声明入口 }
如果不想创建入口文件,也可以直接指定单个类型文件的路径,比如"types": "./types/User.ts",但这种方式只能暴露单个文件的类型,灵活性较差。
- 指定要分发的文件(可选)
在Shared的package.json中添加files字段,确保安装时需要的文件被正确下载到Consumer仓库:
{ "files": [ "types/", "models/", "index.ts" ] }
二、更新Consumer仓库的依赖
- 先卸载已安装的Shared包,再重新安装,确保新的配置生效:
npm uninstall shared npm install https://github.com/user/shared#main
- 检查Consumer的
tsconfig.json,确保compilerOptions中的moduleResolution设置为node(默认配置即可),如果仍有识别问题,可以在include数组中添加node_modules/shared/**/*,强制TypeScript扫描Shared仓库的文件:
{ "compilerOptions": { // 其他配置 "moduleResolution": "node" }, "include": [ // 其他包含路径 "node_modules/shared/**/*" ] }
完成以上步骤后,VSCode就能正确识别Shared仓库中的User类型,导入时也会有相应的提示。
内容的提问来源于stack exchange,提问作者AleXiuS
相关产品推荐
相关产品推荐

