通过 gulp-typescript 排除 node_modules 形式的 typescript 编译

Exclude node_modules form typescript compile via gulp-typescript

我正在尝试 运行 一个 gulp 任务来编译我的打字稿,但不断收到与依赖项相关的错误。

/content/node_modules/@angular/core/src/facade/lang.d.ts(12,17): error TS2304: Cannot find name 'Map'.
/content/node_modules/@angular/core/src/facade/lang.d.ts(13,17): error TS2304: Cannot find name 'Set'.

我试图省略 node_modules 目录,这样它只会通知我代码中的问题。我的文件如下:

gulpfile.js

var tsProject = ts.createProject('tsconfig.json');
gulp.task('ts', function () {
    return gulp.src([aemPaths.jcrRoot + '**/*.ts'])
        .pipe(tsProject())
        .pipe(gulp.dest(aemPaths.jcrRoot));
});

我也试过了

gulp.task('ts', function () {
    return gulp.src([aemPaths.jcrRoot + '**/*.ts','!node_modules/**/*'])
        .pipe(tsProject())
        .pipe(gulp.dest(aemPaths.jcrRoot));
});

tsconfig.json

{
    "compilerOptions": {
        "target": "es5",
        "module": "commonjs",
        "moduleResolution": "node",
        "sourceMap": false,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "removeComments": false,
        "noImplicitAny": false,
        "suppressImplicitAnyIndexErrors": true
    },
    "exclude": [
        "node_modules"
    ]
}

我做了很多搜索,但似乎无法找到一种方法来用 gulp-typescript 省略它。任何帮助将不胜感激。

您不需要将 node_modules 目录排除到 gulp 中,只需将类型 es6-collections 和 es6-promise 添加到 gulp.src 数组