Показать сообщение отдельно
  #1 (permalink)  
Старый 18.07.2016, 10:24
Интересующийся
Отправить личное сообщение для leshiple Посмотреть профиль Найти все сообщения от leshiple
 
Регистрация: 09.12.2014
Сообщений: 21

Gulp, spritesmith и stream-combiner2
Посмотрел скринкаст Ильи по gulp и захотел переписать свои таски.
gulpfile.js:
function lazyRequireTask(taskName, options) {
    options = options || {};
    options.taskName = taskName;
    gulp.task(taskName, function(callback) {
        let task = require(config.path.tasks + taskName).call(this, options);
        return task(callback);
    });
}


lazyRequireTask("img.sprite", {
    src: config.path.src.img.sprite + "*.*",
    destImg: config.path.build.img,
    destStyles: config.path.src.styles.helpers
});


img.sprite.js:
const $ = require("gulp-load-plugins")();
const combine = require("stream-combiner2").obj;
const gulp = require("gulp");
const fs = require('fs');
const buffer = require('vinyl-buffer');
const pngquant= require('imagemin-pngquant');
const config = require("../gulp.config");


module.exports = (options) => {
    let spriteData = $.spritesmith({
        imgName: "sprite.png",
        cssName: "_sprite.scss",
        cssFormat: "scss",
        padding: 10,
        cssTemplate: "sprite.hbs",
        cssVarMap: function(sprite){
            sprite.name = "s-" + sprite.name
        }
    });
    
    return () => {
        return combine(
            gulp.src(options.src),
            spriteData,
            spriteData.img
                .pipe(buffer())
                .pipe($.imagemin({
                    progressive: true,
                    svgoPlugins: [{removeViewBox: false}],
                    use: [pngquant()]
                }))
                .pipe(gulp.dest(options.destImg)),
            spriteData.css.pipe(gulp.dest(options.destStyles))
    
        ).on('error', $.notify.onError({
            title: "Error in img.sprite"
        }));
    }
};


Проблема в том что файл стилей и изображения выводятся в директорию для изображения и еще файл стилей копируется в свою правильную директорию. Не пойму как решить правильно проблему. Можно конечно после завершения задачи удалять избыточный файл стилей, но как то это костыльно.

P.S.
В процессе выполнения задачи в консоль выводится предупреждение:
Код:
(node:11368) DeprecationWarning: 'GLOBAL' is deprecated, use 'global'
Поиск в гугле не помог.
Ответить с цитированием