解析VSCode中的全局TypeScript类型

gcmastyq  于 2023-01-06  发布在  TypeScript
关注(0)|答案(1)|浏览(193)

在VSCode中,我有一个类似于下面的项目结构:

my-project
﹂client
  ﹂client.test.ts
  ﹂package.json
﹂server
  ﹂server.test.ts
  ﹂package.json

package.json文件包含jest@types/jest等测试的依赖项。
如果我直接打开其中一个子文件夹(客户端或服务器),VSCode将显示测试文件,没有任何错误,因为它可以找到jest全局变量(如expectdescribe等)的所有定义。
如果我打开项目的根目录(my-project),VSCode会在测试文件中显示错误,因为它无法再找到jest的类型定义。
如果我在项目的根添加一个package.json,然后向其添加jest类型,VSCode又会很高兴。
是否有可以更改的设置或配置允许VSCode从项目根目录查找jest全局变量的类型定义,而无需单独安装它们?

58wvjzkj

58wvjzkj1#

有几种方法可以管理这样的项目结构。
您可以考虑将其作为 * monorepo * 处理:有很多工具可以管理这样的monorepo,特别是在node_modules根文件夹中安装通用的和兼容的包。这特别利用了Node.js模块解析,它在所有包含文件夹的node_modules目录中查找非相对导入:

my-project/
├── client/
│   ├── client.test.ts
│   └── package.json
├── node_modules/
├── server/
│   ├── package.json
│   └── server.test.ts
└── package.json

另一种可能的解决方案是使用typeRoots编译器选项配置根tsconfig.json
x一个一个一个一个x一个一个二个x

相关问题