慢速哈巴狗编译为HTML

时间:2017-09-12 15:34:37

标签: javascript gulp pug

我正在使用gulp将我的pug文件编译为HTML。每次做出任何改变,平均需要30秒!是否可能是由于我的gulp配置中的某些内容(如下所列)?

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

2 个答案:

答案 0 :(得分:4)

如果是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任务来构建文件,{ since: gulp.lastRun('pug') }只需要处理已更改的文件。由于监视功能使gulp进程保持活动状态,因此它可以缓存所有以前未更改的文件。

备注:这只有在您使用Gulp v4时才有效,否则,您应该真正升级;)

Gulp的解决方案< 4.0

有一个名为gulp-cache的软件包,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-remembergulp-remember。这些包将输入文件链接到转换后的输出文件。这意味着gulp-cache将输出已处理的所有文件。如果文件未更新,则会输出缓存版本。如果您不需要所有文件(例如,因为您没有连接它们),您可以删除这些行。

即使包名非常相似,它们也完全不同:

{ sine: gulp.lastRun('pug') }只会转发自上次构建以来已更改的文件。它基本上是相同的,然后是选项gulp-cache

因此,如果您需要在管道中进一步处理文件,则需要所有3个包,否则,包procedure(不包含 d )就足够了。

答案 1 :(得分:0)

我用这个。

仅通过更改的文件

不再浪费宝贵的时间来处理未更改的文件。

https://www.npmjs.com/package/gulp-changed