[tssconfig中未包含测试/ **时,Vscode TS语言功能不可用

问题描述 投票:0回答:1

我希望我的打字稿测试在test文件夹与src相邻的情况下能够接收棉绒,代码完成和vscode智能感知(ts语言功能)。构建我的打字稿项目时,我不希望测试转换。

我的打字稿节点项目的结构如下:

.    
├── server
│   │ 
│   │    
│   ├── src
│   │   │
│   │   └── app.ts
│   ├── test
│   │   │
│   │   └── app.test.ts
│   ├── node_modules/
│   ├── package-lock.json
│   ├── package.json
│   ├── tslint.json
│   └── tsconfig.json
├── front_end/
└── README.md

使用我的tsconfig:

{
  "compilerOptions": {
    "baseUrl": ".",
    "module": "commonjs",
    "moduleResolution": "node",
    "outDir": "dist",
    "sourceMap": true,
    "strict": true,
    "target": "ESNext",
    "paths": {
      "*": ["node_modules/*"]
    }
  },
  "include": ["src/**/*"]
}

[当我在vscode中导航至测试文件时,vscode语言功能将无法识别在node_modules中安装的类型和软件包。令人惊讶的是,如果我仅在服务器文件夹中打开vscode(如您从我的文件夹结构中看到的服务器不是根),则语言功能正常运行。

测试使用ts-jest运行,因此此处不需要tsc。将tsconfig.json扩展为测试be是更好的做法吗?

是可以在设置中解决的问题,还是应该向https://github.com/microsoft/vscode/issues/new/choose提交错误。

typescript visual-studio-code jest ts-jest
1个回答
0
投票

我没有计算机对此进行测试,但是我认为您只需要在ts json文件中添加以下代码。

"exclude": [
        "node_modules",
        "**/*.test.ts"
    ]

如果不使用节点,则可以省略node_modules部分。但是我想在答案中使用它,以防正在使用节点的人复制排除项。默认情况下,不包括node_modules,但是添加更多的修饰符可能会覆盖掉它。

祝你好运。

希望这就是您想要的。

© www.soinside.com 2019 - 2024. All rights reserved.