测试(ExpressJS + TypeScript + Vitest):tsconfig 设置在 Visual Studio Code 中不起作用

JC9*_*C97 7 express typescript visual-studio-code vitest

我将直接跳到一个例子:

我有以下(简化的)项目结构:

src/
    app.ts
test/
    integration/
        example.spec.ts
    tsconfig.json
tsconfig.json
Run Code Online (Sandbox Code Playgroud)

根目录tsconfig.json包含以下设置:

src/
    app.ts
test/
    integration/
        example.spec.ts
    tsconfig.json
tsconfig.json
Run Code Online (Sandbox Code Playgroud)

tsconfig.json文件夹内部包含tests/以下设置:

{
  "extends":"@tsconfig/node16/tsconfig.json",
  "compilerOptions": {
    "rootDir": "./src",
    "outDir": "./build",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "resolveJsonModule": true,
    "noEmitOnError": true
  },
  "include": [
    "./src/**/*.ts"
  ]
}
Run Code Online (Sandbox Code Playgroud)

现在我基本上有两个问题:

  1. 从 pnpm 运行基本示例测试可使用以下脚本cd ./test && vitest run:然而,在 vscode 中,它似乎没有解析内部 tsconfig,所以我总是在 IDE 中遇到类型错误:

IDE错误1 IDE错误2

  1. 每当我想app从 src 文件夹导入时,我都会收到以下与 typeORM 相关的错误: 应用程序导入错误

对于第一个问题,我猜测它要么是 vscode 中的错误,要么需要在某个地方正确配置。但我找不到太多关于它的信息。对于第二个问题,我可能遗漏了一些东西(首先构建,在该构建上运行测试?)。

也许我正在尝试一些根本错误的东西,但我想知道如何正确设置可测试的 ExpressJS TypeScript 应用程序。

JC9*_*C97 0

现在我只是假设vitest不能与 TypeORM 一起使用,因为它需要reflect-metadata包并且vite(在esbuild下面)也不适用于该包。当我们从 TypeORM 迁移出去时,我会再试一次。