@smoyke
HTML программист

Почему не работает задача gulp на mac os?

У меня есть готовый шаблон, который я всегда использую для верстки проектов, всегда все работало четко, но тут возникла проблема на маке, один таск вылетает с ошибкой, в таске собирается спрайт из иконок и минифицируется. Пробовал разные версии ноды, никаких результатов это не дало. Такая проблема у меня только на маке, на убунте и винде все четко, без всяких плясок с бубном.
вот код таска:
$.gulp.task('icons:img', function () {
        var spriteData = $.gulp.src([$.config.paths.src.icons + '**/*.*', '!' + $.config.paths.src.icons + '**/*.svg'])
            .pipe($.gp.spritesmith({
                imgName: '../images/icons.png',
                cssName: '_icons-img-sass.scss',
                cssFormat: 'scss',
                padding: 2
            }));

        var imgStream = spriteData.img
            .pipe(buffer())
            .pipe($.gp.imagemin({
                interlaced: true,
                progressive: true,
                optimizationLevel: 5
            }))
            .pipe($.gulp.dest($.config.paths.build.images));

        var cssStream = spriteData.css.pipe($.gulp.dest($.config.paths.src.styles + '_common/'));

        return merge(imgStream, cssStream);
    });


вот ошибка:

[14:28:28] Starting 'icons:img'...
[14:28:28] The following tasks did not complete: default, icons:img
[14:28:28] Did you forget to signal async completion?
/Users/alexander/Development/Projects/Private/frontend-life.ru/node_modules/pixelsmith/lib/engine.js:40
          file.pipe(concat(function handleFileBuffer (buff) {
               ^

TypeError: file.pipe is not a function
    at loadPixels (/Users/alexander/Development/Projects/Private/frontend-life.ru/node_modules/pixelsmith/lib/engine.js:40:16)
    at fn (/Users/alexander/Development/Projects/Private/frontend-life.ru/node_modules/pixelsmith/node_modules/async/lib/async.js:638:34)
    at Immediate._onImmediate (/Users/alexander/Development/Projects/Private/frontend-life.ru/node_modules/pixelsmith/node_modules/async/lib/async.js:554:34)
    at runCallback (timers.js:789:20)
    at tryOnImmediate (timers.js:751:5)
    at processImmediate [as _immediateCallback] (timers.js:722:5)
  • Вопрос задан
  • 401 просмотр
Пригласить эксперта
Ответы на вопрос 1
@giv13
В общем, лично мне помог метод ниже, делюсь.

Как было раньше:
1. У меня есть заготовка для новых проектов на gulp4. Я ее клонировал себе на компьютер (git clone ...)
2. Устанавливал пакеты (npm install)
3. Запускал проект (gulp default)

И все работало нормально. Затем на третьем этапе появилась вышеописанная ошибка. Как я от нее избавился:
1. Клонирую себе на компьютер заготовку (git clone ...)
2. Меняю в package.json строчку "gulp": "github:gulpjs/gulp#4.0" на "gulp": "^4.0.0"
3. Удаляю файл package-lock.json
4. Устанавливаю пакеты (npm install)
5. Запускю проект (gulp default), все работает.

После этого я запушил изменения, и теперь ошибка не вылетает. Так понимаю, ошибка как-то связана с официальным релизом gulp версии 4.0.0.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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