从 "problems" 中排除 node_modules

Exclude node_modules from "problems"

我运行这个任务:

{
        "taskName": "tsc watch",
        "command": "tsc -w",
        "type": "shell",
        "problemMatcher": "$tsc-watch"
}

使用此 tsconfig:

{
    "compileOnSave": true,
    "files": [
        "src/index.ts"
    ],
    "compilerOptions": {
        "module": "commonjs",
        "sourceMap": true,
        "outDir": "dist/"
    },
    "exclude": [
        "node_modules"
    ]
}

文件index.ts只有一行:

console.log('Is it working?');

并且 "problems" 选项卡充满了来自随机 npm 模块的 HTML 相关警告。为什么?我该如何阻止它?

编辑1:
通过从资源管理器中排除 node_modules 文件夹,我设法找到了一个可行的 hack:

/* settings.json */
{
    "files.exclude": {
        "**/node_modules": true
    }
}

然而这是一个黑客,我仍然想要一个正确的答案..

我也偶然发现了这个问题。 我找到的唯一解决方案是添加 skipLibCheck 选项并在我的 tsconfig.json:

compilerOptions 中将其设置为 true
{
    "compilerOptions": {
        "skipLibCheck": true
    }
}

根据 the doc,它将跳过所有声明文件 (*.d.ts) 的类型检查,这些文件在我的案例中引发了警告。

您只需要 tsconfig.json 和:

{
    "compilerOptions": {
        "skipLibCheck": true,
    }
}

我发现了另一个“作弊”,可以在我尝试了所有方法但没有任何效果后使该问题消失。 我在文件末尾添加:

export {}

这不知何故奏效了。我对该解决方案不满意,但这是唯一对我有用的方法。