Как ускорить сборку и минификацию js скриптов?

Есть четыре js-файла: два из них сторонние, два написаны руками. Скорость минификации конечного файла всегда одна - 20 секунд, как можно снизить?

Вот нужная часть кода в галпфайла:
var gulp =  require("gulp"),
		concat = require("gulp-concat"),
		uglify = require("gulp-uglifyjs");

gulp.task("auto-scripts", function() {
	return gulp.src([
		"app/public/vendors/jquery/jquery.min.js",
		"app/public/vendors/ckeditor/ckeditor.js"
		])
	.pipe(concat("auto-scripts.js"))
	.pipe(gulp.dest("app/public/meta/js"))
})

gulp.task("hand-scripts", function() {
	return gulp.src([
		"app/public/js/application.js",
		"app/public/meta/js/script.js"
		])
	.pipe(concat("hand-scripts.js"))
	.pipe(gulp.dest("app/public/meta/js"))
});

gulp.task("scripts", ["auto-scripts", "hand-scripts"], function() {
	return gulp.src([
		"app/public/meta/js/auto-scripts.js",
		"app/public/meta/js/hand-scripts.js"
		])
	.pipe(concat("scripts.min.js"))
	.pipe(uglify())
	.pipe(gulp.dest("app/public/meta/js"))
});
  • Вопрос задан
  • 539 просмотров
Решения вопроса 2
delphinpro
@delphinpro Куратор тега Gulp.js
frontend developer
  1. Не нужно пересобирать вендоров на каждый чих.
  2. Не нужно минифицировать на каждый чих.


Есть два режима работы скриптов — development и production.
В режиме разработки вы не пересобираете вендоров вотчером, подключаете два файла в html (условно vendor.js и main.js), генерируете сорс-карты, не минифицируете код.
Когда всё готово, вы собираете билд для сайта — клеите всё в один файл, минифицируете код, отключаете сорс-карты.
Ответ написан
Vlad_IT
@Vlad_IT
Front-end разработчик
Сделать dev сборку, в которой не будет производится минификация. Она же вам нужна только для отправки на продакшн, а во время разработки можно использовать не сжатые скрипты (так даже легче отлаживать в браузере). т.е. пишите в консоли
gulp build --env development
И получаете для разработки, без минификации. Если так
gulp build --env production
То с минификацией.
Вот эта штука поможет https://www.npmjs.com/package/gulp-environments и тогда просто замените на
var environments = require('gulp-environments');
var development = environments.development;
var production = environments.production;
.....
.pipe(production(uglify()))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы