Как ускорить gulp/rollup/babel?

Доброго всем дня.

Есть такой вопрос. Имеется у меня проектик на 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 (мне, по факту, весь код нужен все равно); видимого эффекта не дало. Можно ли еще что-нибудь пошаманить, чтобы заставить это дело ворочаться пошустрее?
  • Вопрос задан
  • 954 просмотра
Пригласить эксперта
Ответы на вопрос 1
amelihovv
@amelihovv
Фулстек веб разработчик
Я не знаю, есть ли такая фича в rollup, но в вебпаке сильно ускоряет сборку Hot Module Replacement.
А если хотите ускорить gulp, то советую скринкаст Ильи Кантора по нему. https://www.youtube.com/watch?v=uPk6lQoTThE
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы