tsc 不排除 npm 链接的 node_modules

Uri*_*lar 12 symlink npm typescript

问题:当使用我的应用程序进行类型检查时,tsc我收到npm linked 模块错误。

这是我的类型检查命令:
"type-check": "tsc --noEmit -p tsconfig.json"

这是我的tsconfig.json

{
    "compilerOptions": {
        "outDir": "./dist/",
        "sourceMap": true,
        "noImplicitAny": false,
        "allowJs": true,
        "module": "commonjs",
        "target": "es6",
        "jsx": "react",
        "esModuleInterop": true,
        "experimentalDecorators": true,
        "skipLibCheck": true
        //"importsNotUsedAsValues": "error"
    },
    "exclude": ["./node_modules/*"] // I've also tried node_modules, /node_modules, node_modules/
}

Run Code Online (Sandbox Code Playgroud)

由于通过 npm 链接连接的我的 node_modules 之一中的类型错误,该命令将失败。

任何从类型检查中排除此模块的方法


编辑:

我也尝试过使用双 globstar ( **) 例如

{
    "compilerOptions": {
        "outDir": "./dist/",
        "sourceMap": true,
        "noImplicitAny": false,
        "allowJs": true,
        "module": "commonjs",
        "target": "es6",
        "jsx": "react",
        "esModuleInterop": true,
        "experimentalDecorators": true,
        "skipLibCheck": true
        //"importsNotUsedAsValues": "error"
    },
    "exclude": ["./node_modules/*"] // I've also tried node_modules, /node_modules, node_modules/
}

Run Code Online (Sandbox Code Playgroud)

这给了我同样的错误结果。

Jos*_*ora 5

如果你使用 webpack 尝试添加symlinks: falseresolve. 这为我解决了类似的问题。

resolve: {
    // ...  
    symlinks: false,
},
Run Code Online (Sandbox Code Playgroud)

如果你纯粹使用tsc尝试(我没有尝试过):

preserveSymlinks: true
Run Code Online (Sandbox Code Playgroud)