我用一口编译我的哈巴狗文件HTML。这需要每次我做出什么样的变化在30秒的平均!它是可能由于我一口东西配置(见下表)?
var gulp = require('gulp')
var pug = require('gulp-pug')
gulp.task('pug', function () {
return gulp.src('pug/**/*.pug')
.pipe(pug({pretty:true, doctype:'HTML'}))
.pipe(gulp.dest('views'))
})
gulp.task('watch:pug', ['pug'], function () {
gulp.watch('pug/**/*.pug', ['pug'])
})
如果是,会降低你的pug
编译,添加缓存。
var gulp = require('gulp');
var pug = require('gulp-pug');
var cached = require('gulp-cached');
var remember = require('gulp-remember');
gulp.task('pug', function () {
return gulp.src('pug/**/*.pug', { since: gulp.lastRun('pug') }))
.pipe(cached('pug'))
.pipe(pug({pretty:true, doctype:'HTML'}))
.pipe(remember('pug'))
.pipe(gulp.dest('views'))
})
gulp.task('watch', function(done) {
gulp.watch('pug/**/*.pug', gulp.parallel('pug'));
return done();
});
gulp.task('default', gulp.series('pug', 'watch'));
选项gulp.lastRun
只会返回,因为给定任务的上次运行已更改的文件。如果使用default
任务来构建你的文件,pug
将只需要处理已更改的文件。由于吞气过程由监控功能更让,它能够缓存所有以前未更改的文件。
备注:如果您使用咕嘟咕嘟V4,如果没有,你应该升级这只会工作;)
有一个包叫做gulp-cache
,这{ since: gulp.lastRun('pug') }
。所以,你应该能够调整片段:
var gulp = require('gulp');
var pug = require('gulp-pug');
var cache = require('gulp-cache');
var cached = require('gulp-cached');
var remember = require('gulp-remember');
gulp.task('pug', function () {
return gulp.src('pug/**/*.pug'))
.pipe(cache('pug'))
.pipe(cached('pug'))
.pipe(pug({pretty:true, doctype:'HTML'}))
.pipe(remember('pug'))
.pipe(gulp.dest('views'))
})
gulp.task('watch', function(done) {
gulp.watch('pug/**/*.pug', ['pug']);
return done();
});
gulp.task('default', ['pug', 'watch']);
我不知道你是否真的需要gulp-cached
和gulp-remember
。这些包输入文件链接到转换后的输出文件。这意味着gulp-remember
将输出已处理的所有文件。如果没有更新的文件,它将输出缓存版本。如果你并不需要所有的文件(例如,因为你没有连接起来将),你可以删除这些行。
即使包名非常相似,它们是完全不同的:
该软件包gulp-cache
将只转发文件自上次构建变化。它在本质上不相同,则该选项{ sine: gulp.lastRun('pug') }
。
所以,如果你需要处理的文件在您的管道里,你需要的所有3包,否则,包gulp-cache
(不含d)应该足够了。