gulp-typescript:使用createProject的问题

时间:2016-04-03 15:05:32

标签: typescript gulp gulp-typescript

我一直试图使用gulp-typescript取得一定程度的成功,但我有一个小问题。我的所有代码都存储在'src'下,我希望将它们编译为'.tmp',但不包含'src'。

这是我的代码,我认为问题是不支持将值(glob)传递给tsProject.src,所以我得到/.tmp/src/aTypescriptFile.js例如

我直接从github repo获取此代码,我真正不理解的是为什么用tsProject.src替换gulp.src

有什么想法吗?我确实需要合并我的tsconfig.json文件。

    let tsProject = plugins.typescript.createProject('./tsconfig.json');
    return tsProject.src('/src/**/*.ts')
        .pipe(plugins.typescript(tsProject))
        .pipe(plugins.sourcemaps.init())
        .pipe(plugins.sourcemaps.write('.'))
        .pipe(gulp.dest('.tmp'));

**编辑**

更多信息,我已经设法通过替换

来使用glob来限制它
             return tsProject.src('/src/**/*.ts')

             return gulp.src('/src/**/*.ts')

现在问题是我收到关于缺少打字的错误。

        src/testme.ts(4,10): error TS2304: Cannot find name 'require'.

我的TSCONFIG.JSON文件在这里,其中有输入。

{
  "compilerOptions": {
    "target": "ES6",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false
  },
  "files": [
    "typings/main.d.ts",
    "src/testme.ts"
  ]
}

1 个答案:

答案 0 :(得分:1)

所有路径都应该传递给gulp.src - 来源和打字。

让我们有一些路径:

var paths = { 
    lib: "./wwwroot/",
    ts: ["./sources/**/*.ts"],
    styles: ["./sources/**/*.scss"],
    templates: ["./sources/**/*.html"],
    typings: "./typings/**/*.d.ts",
    //svg: "./sources/**/*.svg",
};

我们可以将一系列源路径传递给gulp-typescript:

gulp.task("?typescript:demo:debug", function () {
    var tsResult = gulp.src([
          paths.typings,
          // <...some other paths...>
        ].concat(paths.ts))
       .pipe(sourcemaps.init())
       .pipe(ts({
           target: "ES5",
           experimentalDecorators: true,
           noImplicitAny: false
       }));

    return tsResult.js
        .pipe(concat(package.name + ".js"))
        .pipe(sourcemaps.write({ sourceRoot: "" }))
        .pipe(gulp.dest(paths.lib));
})

我正在通过

gulp.src([paths.typings, <...some other paths...>].concat(paths.ts))

但当然,它也可以用更简单的方式完成:

gulp.src([paths.typings, paths.ts])