通过gulp-typescript排除node_modules表单typescript编译

时间:2016-11-30 05:02:15

标签: javascript gulp 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省略的方法。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

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