2016-05-18 13 views
0

geändert haben brauche ich einen Schluck Aufgabe zu schreiben, die nur die Typoskript Dateien kompiliert werden, die tatsächlich geändert wurden, und kam mit dieser:Gulp Aufgabe nur Dateien zu kompilieren, die

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')); 
}); 

Allerdings ist diese Aufgabe nicht finden Sie alle geänderten Dateien, obwohl es .ts Dateien mit aktuelleren Zeitstempeln als ihre .js Gegenstück gibt.

Wo bin ich falsch gelaufen?

Antwort

2

jedoch diese Aufgabe jede nicht finden Geänderte Dateien, obwohl es .ts-Dateien mit neueren Zeitstempeln als ihr .js-Gegenstück gibt.

Das ist, weil Sie nicht gulp-newer sagen .ts Dateien mit .js Dateien zu vergleichen. Sie vergleichen .ts Dateien mit sich selbst, damit keine Änderungen erkannt werden.

Sie müssen gulp-newer sagen, jede .ts Datei mit ihrem .js Pendant vergleichen:

.pipe(newer({dest:'app',ext:'.js'})) 
+0

Bullseye, dass der Trick, ich danke Ihnen sehr! –

0

Es gibt eine einfachere Methode zum Kompilieren von Dateien, wenn sie sich ändern. Mit gulp watch können Sie die Funktion einmal ausführen, und wenn Sie eine Änderung speichern, wird die Kompilierungsfunktion ausgeführt.

gulp.task('watch', function() { 
    gulp.watch(['ts/filepaths','more/ts/filepaths'], 
    ['compile:ts','otherFunctionsIfNeeded']); 
}); 

Wenn Sie kompilieren umschreiben: ts nur zu kompilieren, die Funktion oben verwenden, wenn Sie eine ts-Datei speichern, wird es kompiliert für Sie

Verwandte Themen