ms-dred
@ms-dred
Вечно что то не то и что то не так...

Gulp, как сохранить директории после минификации файлов?

Подскажите как сохранить директории при минификации файлов.

К примеру есть две директории:
./static/ajax/
./static/ajax/created/


Хочу собрать все файлы в папке ./static/ajax/, объединить их и переместить в папку с файлом ./static/build/build.min.js
А файлы из папки ./static/ajax/created/, переместить в папку ./static/build/created/created.min.js

На данный момент сделал объединение файлов в папке ./static/ajax/, а вот с другой папкой что то не пойму как быть

var gulp		= require('gulp')
	, jshint	= require('gulp-jshint')
    , concat    = require('gulp-concat')
	, rename    = require('gulp-rename')
	, uglify    = require('gulp-uglify');

var paths = {
	"js"		: ['./static/ajax/*.js', './static/ajax/created/*.js'],
	"jsIn"		: './static/build', 
	"jsName"	: 'build.js',
	"jsNameMin"	: 'build.min.js'
};

/*	Листинг файлов
------------------------------------------------------------------------------------------------------------------------*/
gulp.task('lint', function() {
	gulp.src(paths.js)
		.pipe(jshint())
		.pipe(jshint.reporter('default'));
});

/*	Конкатенация и минификация файлов
------------------------------------------------------------------------------------------------------------------------*/
gulp.task('minify', function(){
    gulp.src(paths.js)
        .pipe(concat(paths.jsName))
        .pipe(gulp.dest(paths.jsIn))
        .pipe(rename(paths.jsNameMin))
        .pipe(uglify())
        .pipe(gulp.dest(paths.jsIn));
});

/*	Действия по умолчанию
------------------------------------------------------------------------------------------------------------------------*/
gulp.task('default', function(){
	gulp.run('lint', 'minify');

	// Слежка за файлами
	gulp.watch(paths.js, function(event){
		gulp.run('lint', 'minify');
	});
});
  • Вопрос задан
  • 624 просмотра
Решения вопроса 1
@lnked
может такой велосипед подойдет?

var paths = {
    "js": {
        "ajax": {
            "src": "./static/ajax/*.js",
            "build": "build.js",
            "dist": "./static/build"
        },
        "created": {
            "src": "./static/created/*.js",
            "build": "created.js",
            "dist": "./static/build/created"
        }
    }
}


function doit(dir)
{
    var item = paths.js[dir];

    /*  Листинг файлов
    ------------------------------------------------------------------------------------------------------------------------*/
    gulp.task('lint', function() {
        gulp.src(item.src)
            .pipe(jshint())
            .pipe(jshint.reporter('default'));
    });

    /*  Конкатенация и минификация файлов
    ------------------------------------------------------------------------------------------------------------------------*/
    gulp.task('minify', function(){
        gulp.src(item.src)
            .pipe(concat(item.build))
            .pipe(gulp.dest(item.dist))
            .pipe(rename({suffix: '.min'}))
            .pipe(uglify())
            .pipe(gulp.dest(item.dist))
    });

    gulp.run('lint', 'minify');
}

gulp.task('make', function(){
    for (var dir in paths.js)
    {
        doit( dir );
    }
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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