Доброго всем дня.
Есть такой вопрос. Имеется у меня проектик на JS (с использованием ES6), содержащий, в общей сложности, около 250 js-файлов разного калибра (большинство - в пределах нескольких сотен строк). Вся эта радость собирается связкой из gulp/rollup/babel примерно так:
var gulp = require("gulp");
var sync = require("gulp-sync")(gulp);
var babel = require("rollup-plugin-babel");
var rollup = require("rollup-stream");
var source = require("vinyl-source-stream");
var buffer = require("vinyl-buffer");
var sourcemaps = require("gulp-sourcemaps");
var cache = false;
gulp.task("js", function () {
return rollup({
entry: "src/main.js",
sourceMap: true,
plugins: [babel()],
cache: cache
})
.on("bundle", bundle => { cache = bundle; })
.pipe(source('bundle.js'))
.pipe(buffer())
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest("./build"));
});
gulp.task("watch", function () {
gulp.watch("src/**", ["js"]);
});
gulp.task("default", sync.sync(["js", "watch"]));
В таком виде вся эта радость отрабатывает примерно за 25с. Пересборка "на лету" (watch'ем) длится 3-4с. Возможно, я зажрался, но мне кажется, что все это как-то медленно. Пробовал отключать rollup'у treeshake (мне, по факту, весь код нужен все равно); видимого эффекта не дало. Можно ли еще что-нибудь пошаманить, чтобы заставить это дело ворочаться пошустрее?