首页 > 解决方案 > 如何在不寻常的地方从 node_modules 获取 VSCode 中的智能感知?

问题描述

如何让 VSCode 找到安装在不同位置的模块的类型声明?

/
└── Users
    └── me
        ├── foo
        |   └── node_modules
        |       └── some-module
        ├── bar
        |   └── file.ts
        └── tsconfig.json
// bar/file.ts
import {} from 'some-module'
            // ^^^^^^^^^^^^^ Cannot find module 'some-module' or its corresponding type declarations.ts(2307)

我尝试了该paths选项,tsconfig.json但它没有工作,因为它试图找到一个some-module.ts内部调用的文件(在这种情况下foo/node_modules它似乎不知道如何解释文件)package.json

我尝试了该rootDirs选项,tsconfig.json但它被忽略了,因为它显然仅用于尝试解决相对导入(虽然some-module不是相对的)。

我怎样才能做到这一点?

标签: node.jstypescriptnode-modulestsconfig

解决方案


尝试使用typeRoots编译器选项:

// /Users/me/tsconfig.json
{
  "compilerOptions": {
    "typeRoots": [
      "./foo/node_modules",
      // maybe other locations
    ],
  },
}

请注意,默认值typeRoots被替换,而不是扩展。有关详细信息,请参阅此问题


推荐阅读