我需要编写一个gulp任务,该任务只会编译那些实际上已更改并提出以下内容的Typescript文件:
var gulp = require('gulp');
var print = require('gulp-print');
var newer = require('gulp-newer');
var ts = require('gulp-typescript');
gulp.task('compile:ts', function () {
return gulp.src([
'typings/browser.d.ts',
'app/**/*.ts'
])
.pipe(newer('app'))
.pipe(print(function (filepath) {
return 'Compiling ' + filepath + '...';
}))
.pipe(ts({
target: 'es5',
module: 'commonjs',
moduleResolution: 'node',
sourceMap: true,
emitDecoratorMetadata: true,
experimentalDecorators: true,
removeComments: false,
noImplicitAny: false
}))
.pipe(gulp.dest('app'));
});
但是,此任务找不到任何已修改的文件,尽管有些.ts
文件的时间戳比其最新的时间戳要新.js
。
我哪里做错了?
但是,此任务找不到任何修改过的文件,尽管存在.ts文件带有比.js相对应的最新时间戳。
那是因为您不是在告诉gulp-newer
要比较的.ts
文件与.js
文件。您正在将.ts
文件与其自身进行比较,因此不会检测到任何更改。
您需要告诉gulp-newer
您将每个.ts
文件与其.js
对应文件进行比较:
.pipe(newer({dest:'app',ext:'.js'}))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句