Vscode + NestJs 模块很少找不到

Vscode + NestJs modules infrequently not found

这真让我抓狂:我用 @nestjs/cli 命令创建了一个全新的 NestJs 项目。一开始一切都很好。然后在通过 nest generate controller mycontroller 添加控制器并安装 jasmine 和 node 类型后,不知何故模块 @nestjs/testing 再也找不到了。

我一遍又一遍地重新创建一个新项目,总是在一段时间后出现这个错误,或者其他 nestjs 包的错误。 (例如 @nestjs/common)。

我已经停用了几乎所有的扩展(只有那些确实不太可能干扰导入的扩展仍然有效,例如 TSLint)。

有人知道哪里出了问题吗?如果有帮助,这是我的(由 nestjs 自动生成)tsconfig.json:

{
  "compilerOptions": {
    "module": "commonjs",
    "declaration": false,
    "noImplicitAny": false,
    "removeComments": true,
    "noLib": false,
    "allowSyntheticDefaultImports": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es6",
    "sourceMap": true,
    "allowJs": true,
    "outDir": "./dist",
    "baseUrl": "./src"
  },
  "include": [
    "src/**/*"
  ],
  "exclude": [
    "node_modules",
    "**/*.spec.ts"
  ]
}

好的,这是一个简单的转储配置错误:

特别的是我有一个这样的项目结构:

base-project
 |
  -- sub-project
 |    |
 |    tsconfig.json
 |
 ...

并且完全错过了我需要将 tsconfig.json 中的 rootDir 属性 设置为 ./sub-project。这样做之后,所有模块都可以正常找到了。

对于那些仍然有问题的人,您可能还想看看 属性 baseUrl

希望对遇到同样问题的人有所帮助!干杯