【问题标题】:VSCode not recognizing types in sub directoriesVSCode 无法识别子目录中的类型
【发布时间】:2019-12-18 11:56:14
【问题描述】:

VSCode 无法识别 Jest 类型。我收到以下错误:

Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`  and then add `jest` or `mocha` to the types field in your tsconfig.

我已安装@types/jest 并将jest 添加到我的tsconfig 文件中的types 字段,但它不起作用。

我注意到,它只发生在子目录中,因为我有一个具有以下文件结构的 monorepo:

 - app1
 - app2
 - app3

如果我只打开 app1 文件夹,则不会出现任何错误。如何设置 VSCode 以使用具有多个项目的文件夹?

我知道 VSCode 允许我们设置多个工作区,但这不是我想要的。每个文件夹都有自己的node_modulestsconfig 文件。我只想让 VSCode 为每个文件夹识别它们,而不是查看 node_modules 的根级别。

我还尝试在根级别创建一个tsconfig 文件并添加以下内容:

{
  "compilerOptions": {
    "typeRoots": ["app1/node_modules/@types", "app2/node_modules/@types"]
  }
}

但是没有用。

【问题讨论】:

  • 我不想拥有多个工作区。我只是想让 VSCode 识别从每个文件夹安装的类型,而不是在根级别查找它们。
  • 您问的问题是“如何设置 VSCode 以使用具有多个项目的文件夹?”。如果这不是您想要回答的问题,那么我建议您重新表述您的问题。

标签: typescript visual-studio-code


【解决方案1】:

我遇到了类似的问题,我的问题是我在 tsconfig.json 中使用了“include”/“exclude”,如果不包含文件或将其排除在外,则会混淆类型。删除了这两个选项,现在无需进一步配置即可工作。

如果不是你的情况,我建议你看看:

https://github.com/Microsoft/vscode/issues/50910#issuecomment-393719145

【讨论】:

    【解决方案2】:

    我不确定原因(可能是由于 VSCode 的处理方式),但具有以下 dir 结构:

    .
    ├── app1
    │   ├── index.ts
    │   ├── node_modules
    │   └── package.json
    └── app2
        ├── index.ts
        ├── node_modules
        └── package.json
    
    

    ...好像是这样的:

    1. 您可以通过在根目录中添加tsconfig.json(即使只包含空括号{})来消除app1/index.tsapp2/index.ts 等中的所有“未找到模块”投诉。

    2. 您可以通过在app1 中添加一个tsconfig.json 文件(即使只包含空括号{})在app1/index.ts 中启用智能感知,在app2/index.ts 中添加一个tsconfig.json 文件(甚至如果在app2中只包含空括号{})等。

    我不喜欢这种“解决方案”。如果我可以通过在.vscode/settings 中为工作区而不是 src 文件添加一些东西来让 VSCode 找到正确的库,我会更喜欢,但我认为目前这不可能。我计划向TypeScript/issues提交一个请求。

    【讨论】:

    • 我有一个类似的文件结构,但我确实在应用程序文件夹中有一个 tsconfig.json,并且智​​能感知仍然不建议我从带有自己的 d.ts 类型的依赖项中导入(没有单独的 @这些依赖项的 987654337@ 类型)。知道如何解决这个问题吗?
    猜你喜欢
    • 2023-03-17
    • 2022-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-12
    • 2020-04-16
    • 2020-07-04
    相关资源
    最近更新 更多