Gulp 'watch'不保存使用 gulp-swig 渲染的文件



我已经多次使用了湾,但是这个问题使我完全困惑。我有一个render任务可以保存通过gulp-swig管道管道的HTML模板。当通过gulp render手动调用时,它可以很好地工作,但是当任务由gulp.watch触发时,它将无法保存。因此,为了澄清,Watcher dis 触发了任务,但渲染文件实际上并不能保存到其目的地。

我已经将问题归结为以下内容,从我的墨西哥墨西哥一下罗里(Gulpfile)删除了所有其他任务,斧头,上下文数据等。

任何帮助!
var gulp        = require( 'gulp' ),
    browserSync = require( 'browser-sync' ).create(),
    rename      = require( 'gulp-rename' ),
    swig        = require( 'gulp-swig' ),
    reload      = browserSync.reload;
gulp.task( 'render', function() {
    return gulp.src( './dev/template.html' )
        .pipe( swig() )
        .pipe( rename( 'index.html' ) )
        .pipe( gulp.dest( './preview' ) )
        .on( 'end', reload );
});
gulp.task( 'serve', function() {
    browserSync.init( { server: './preview' } );
    gulp.watch( './dev/*.html',  [ 'render' ] );
});
gulp.task( 'default', [ 'serve' ] );

duh,使它起作用。看来Swig默认情况下将模板缓存(?),因此实际上是保存文件,但相同。我注意到有关SWIG的另一个(无关)帖子中的"缓存"选项,该帖子可以解决问题。因此,我需要传递选项对象,例如:

        .pipe( swig({ 
            defaults: { cache: false }
        }) )

最新更新