通过gulp-typescript传递.js文件,没有ERROR TS6054



我想在我的主gulp工具链中包含typescript,这样我就可以根据需要和时间允许将。js文件转换为。ts文件。如果typescript步骤对.js文件不执行任何操作也没关系。

明白了吗?如果是这样,我该如何做到这一点?我尝试了以下操作:

function compileScript(inputFiles, outputName, outputPath) {
    return r.gulp.src(inputFiles)
        .pipe(r.sourcemaps.init())
        .pipe(r.ngAnnotate())
// I'd like to do this, but processing fails if not all files are *.ts
//      .pipe(r.typescript({ target: 'ES5' }))
        .pipe(r.uglify())
        .pipe(r.concat(outputName))
        .pipe(r.sourcemaps.write('.'))
        .pipe(r.gulp.dest(outputPath));
}

但是没有输出,引用:

ERROR 6054: File 'script.js'必须有扩展名'。t '或'.d. Ts '。

也许有一个我忽略的typescript选项,或者一个不会破坏我的源地图的条件管道工具?如果我运行.ts和.js文件的两个单独的步骤,它们最终会无序地连接在一起。

我想避免大爆炸的方法。

注。我正在构建一个ASP。

似乎您目前正在向gulp-typescript提供完整的文件列表,仅使用gulp-filter过滤出*.ts的文件:

function compileScript(inputFiles, outputName, outputPath) {
    var filter = require('gulp-filter')('**/*.ts'); // setup filter
    return r.gulp.src(inputFiles)
        .pipe(r.sourcemaps.init())
        .pipe(filter) // filter out *.ts files
        .pipe(r.typescript({ target: 'ES5' })) // compile them
        .pipe(filter.restore()) // restore all other files to proceed
        .pipe(r.ngAnnotate())
        .pipe(r.uglify())
        .pipe(r.concat(outputName))
        .pipe(r.sourcemaps.write('.'))
        .pipe(r.gulp.dest(outputPath));
}

作为旁注,我认为您应该首先编译*.ts文件,然后再编译ng-annotate文件。

相关内容

最新更新