gulp-nunjucks-render花了很多时间来编译

时间:2018-04-24 10:51:52

标签: gulp nunjucks gulp-nunjucks-render

我正在使用gulp-nunjucks-render进行HTML模板化。

问题是,编译需要3-4分钟。即使我只有七个nunjucks模板。

'use strict';

var gulp = require('gulp'),
    autoprefixer = require('gulp-autoprefixer'),
    sass = require('gulp-sass'),
    minifyCSS = require('gulp-minify-css'),
    uglify = require('gulp-uglify'),
    concat = require('gulp-concat'),
    connect = require('gulp-connect'),
    sourcemaps = require('gulp-sourcemaps'),
    nunjucksRender = require('gulp-nunjucks-render'),
    browserSync = require('browser-sync');

gulp.task('html', function(){
  gulp.src('build/*.html')
    .pipe(browserSync.reload({stream: true}))
});

gulp.task('nunjucksRender', function(){
  gulp.src('sources/html/**/*.+(html|nunjucks)')
  .pipe(nunjucksRender({
      path: ['sources/html/']
  }))
  .pipe(gulp.dest('build/'))
  .pipe(browserSync.reload({stream: true}))
});

gulp.task('css', function(){
  gulp.src('sources/scss/main.scss')
    .pipe(sourcemaps.init())
    .pipe(sass({outputStyle: 'expanded'})
      .on('error', sass.logError)
    )
    .pipe(autoprefixer({
      browsers: ['last 50 versions']
    }))
    // .pipe(minifyCSS())
    .pipe(sourcemaps.write(''))
    .pipe(gulp.dest('build/css'))
    .pipe(browserSync.reload({stream: true}))
});

gulp.task('js', function() {
  gulp.src('sources/**/*.js',)
    // concat pulls all our files together before minifying them
    .pipe( concat('main.min.js') )
    // .pipe(uglify())
    .pipe(gulp.dest('build/js'))
    .pipe(browserSync.reload({stream: true}))
});

gulp.task('watch', function(){
  gulp.watch('build/*.html', ['html', 'nunjucksRender']);
  gulp.watch('sources/**/*.nunjucks', ['nunjucksRender']);
  gulp.watch('sources/scss/**/*.scss', ['css']);
  gulp.watch('sources/js/**/*.js', ['js']);
});

gulp.task('browserSync', function(){
  browserSync({
    server: {
      baseDir: 'build'
    }
  });
});

gulp.task('default', ['css', 'html']);

gulp.task('start', ['browserSync', 'watch']);

以下是编译完成后的样子 enter image description here

是否有任何gulp插件可以减少编译时间或只编译那些被更改的文件?

here是github repo,以防您需要查看完整的文件结构。

1 个答案:

答案 0 :(得分:0)

啊..我正在关注.html.nunjucks文件进行更改..所以当.nunjucks文件编译并创建.html文件时,再次.html相关任务运行。