node.js - 如何在 VSCode 中从不寻常位置的 node_modules 获取智能提示?
我如何让 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)
我尝试了 tsconfig.json 中的 paths 选项,但它不起作用,因为它试图在 foo/node_modules 中找到一个名为 some-module.ts 的文件(似乎在这种情况下它不知道如何解析 package.json 文件)
我尝试了 tsconfig.json 中的 rootDirs 选项,但它被忽略了,因为显然它只用于尝试解析相对导入(而 some-module 并不是相对导入)。
我如何才能实现这个?
答案#1
尝试使用 typeRoots 编译器选项:
// /Users/me/tsconfig.json
{
"compilerOptions": {
"typeRoots": [
"./foo/node_modules",
// maybe other locations
],
},
}
请注意,typeRoots 的默认值是被替换,而不是扩展。详情请参见此问题。
