Всем привет! галп файл в конце. Столкнулся с проблемой сборки проекта, у которого более 50 шаблонов. Некоторое блоки вынесены в файлы.
Есть 2 таска, на сборку jade, и на запуск default - jade, browser-sync, watch и т.д.
Jade компилит - ну.. минут 20. default запускается за несколько секунд, но... первое изменение в jade также компилит минут 10-20, потом, после первого раза, происходит по плану с задержкой 3000 мс. Но начальный запуск это долго.
Как все это ускорить, разбить на несколько, уменьшив количество шаблонов не вариант.
"use strict";
var gulp = require('gulp'),
browserSync = require('browser-sync'),
sass = require('gulp-sass'),
uncss = require('gulp-uncss'),
autoprefixer = require('gulp-autoprefixer'),
sourcemaps = require('gulp-sourcemaps'),
rename = require("gulp-rename"),
plumber = require('gulp-plumber'),
buffer = require('vinyl-buffer'),
merge = require('merge-stream'),
fs = require('fs'),
cheerio = require('gulp-cheerio'),
jadeInheritance = require('gulp-jade-inheritance'),
jade = require('gulp-jade'),
changed = require('gulp-changed'),
cached = require('gulp-cached'),
gulpif = require('gulp-if'),
filter = require('gulp-filter');
var plugins = require("gulp-load-plugins")();
gulp.task('sass', function() {
gulp.src('./sass/main.sass')
.pipe(plumber())
.pipe(plugins.sourcemaps.init())
.pipe(sass({
includePaths: ['./dist/css/'],
onError: browserSync.notify
}))
.pipe(autoprefixer({
browsers: ['last 2 versions'],
cascade: true
}))
// .pipe(uncss({
// html: ['*.html']
// }))
.pipe(plugins.sourcemaps.write("./"))
.pipe(gulp.dest('./dist/css/'))
.pipe(browserSync.reload({stream:true}));
});
gulp.task('skin-sass', function() {
gulp.src('./sass/skin/*.sass')
.pipe(plumber())
.pipe(plugins.sourcemaps.init())
.pipe(sass({
includePaths: ['./dist/css/skin/'],
onError: browserSync.notify
}))
.pipe(autoprefixer({
browsers: ['last 2 versions'],
cascade: true
}))
// .pipe(uncss({
// html: ['*.html']
// }))
.pipe(plugins.sourcemaps.write("./"))
.pipe(gulp.dest('./dist/css/skin/'))
.pipe(browserSync.reload({stream:true}));
});
// jade
gulp.task('jade', function() {
gulp.src('./jade/**/*.jade')
.pipe(changed('./dist/', {extension: '.html'}))
.pipe(gulpif(global.isWatching, cached('jade')))
.pipe(jadeInheritance({basedir: './jade/'}))
.pipe(filter(function (file) {
return !/\/_/.test(file.path) && !/^_/.test(file.relative);
}))
.pipe(plumber())
.pipe(jade({
pretty: ' '
}))
.pipe(gulp.dest('./dist/'))
.pipe(browserSync.reload({stream:true}));
});
gulp.task('setWatch', function() {
global.isWatching = true;
});
// Static server
gulp.task('browser-sync', function() {
browserSync.init({
server: {
baseDir: "./"
},
notify: false,
reloadDelay: 3000
});
});
gulp.task('js', function(){
gulp.src('./dist/**/*.js')
.pipe(browserSync.reload({stream:true}))
});
gulp.task('watch', ['setWatch'], function () {
gulp.watch('./sass/**/*.sass', ['sass']);
gulp.watch('./sass/skin/*.sass', ['skin-sass']);
gulp.watch('./jade/**/*.jade', ['jade']);
gulp.watch('./dist/**/*.js', ['js']);
});
gulp.task('default', ['browser-sync','watch']);