排除"问题"中的node_modules

时间:2017-07-23 16:41:51

标签: typescript visual-studio-code tsconfig

我正在执行此任务:

{
        "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?');

"问题"选项卡中填充了来自随机npm模块的HTML相关警告。为什么?我怎么阻止它?

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

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

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

2 个答案:

答案 0 :(得分:8)

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

{
    "compilerOptions": {
        "target": "es5",
        "module": "commonjs",
        "moduleResolution": "node",
        "sourceMap": true,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "removeComments": false,
        "noImplicitAny": false,
        "skipLibCheck": true,
        "rootDir": "client/app"
    },
    "exclude": [
        "client/node_modules/"
    ]
}

根据the doc,它将跳过所有声明文件(* .d.ts)的类型检查,这些声明文件就是我的情况。

希望这有帮助,

答案 1 :(得分:1)

通过在 typescript 中将 devDependencies 包从 dependencies 更改为 package.json 为我解决了这个问题。