我正在尝试让 gulp 编译并观看 TypeScript 文件。这是我到目前为止所得到的
var tsProject = plugins.typescript.createProject(
{
removeComments: false,
target: 'ES5',
module: 'amd',
noExternalResolve: false,
noImplicitAny: false,
});
var typescriptGlob = [
presentationScriptsDir + '**/*.ts',
definitelyTypedDefinitions
];
gulp.task("compile-typescript", function () {
return gulp.src(typescriptGlob)
.pipe(plugins.typescript(tsProject))
.pipe(gulp.dest(presentationScriptsDir));
});
gulp.task("watch-typescript", function() {
return gulp.watch(typescriptGlob, ["compile-typescript"]);
});
我正在使用gulp-typescript。
但是,由于我们有数百个 TypeScript 文件,我不想在其中一个文件发生更改时重新编译所有文件。上面的代码可以做到这一点(我可以说是因为watch-typescript
至少需要和 一样多的时间compile-typescript
)
我试过使用gulp-changed,像这样
gulp.task("compile-typescript", function () {
return gulp.src(typescriptGlob)
.pipe(plugins.changed(presentationScriptsDir, {extension: '.js'}))
.pipe(plugins.typescript(tsProject))
.pipe(gulp.dest(presentationScriptsDir));
});
这确实过滤掉了未更改的文件。但是随后 typescript 编译器报告错误,因为它只获取一个文件,该文件缺少通常从其他文件获取的类型声明。
我不想将noExternalResolve
标志设置为 true,因为从那时起将不会进行大量类型检查,这首先破坏了使用 TypeScript 的很多原因。
我怎样才能更好地编写这个 gulpfile?