javascript - 在 Laravel Elixir 中创建一个以指定顺序运行 Gulp 任务的任务

标签 javascript laravel gulp laravel-5 laravel-elixir

我正在尝试在 Laravel 5 中创建自定义 Elixir 任务:

  1. 将 SVG 文件转换为网站图标。
  2. 优化创建的网站图标。
  3. 删除未优化的网站图标。

var gulp        = require('gulp');
var runSequence = require('run-sequence');
var favicons    = require('favicons');
var imagemin    = require('gulp-imagemin');
var pngquant    = require('imagemin-pngquant');
var clean       = require('gulp-clean');
var elixir      = require("laravel-elixir");


elixir.extend('favicons', function(input, output, temporary) {

    gulp.task('svgToFavicons', function() {

        return favicons({

            source: input,
            dest: temporary,

            android: true,
            apple: true,
            coast: true,
            favicons: true,
            firefox: true,
            opengraph: false,
            windows: true,

            html: null,
            background: '#1d1d1d',
            tileBlackWhite: false,
            manifest: null,
            trueColor: false,
            url: null,
            logging: false,
            callback: null

        });

    });

    gulp.task('optimizeFavicons', ['svgToFavicons'], function() {

        return gulp.src(temporary + '/*')
            .pipe(imagemin({
                progressive: true,
                optimizationLevel: 1,
                use: [pngquant()]
            }))
            .pipe(gulp.dest(output));

    });


    gulp.task('deleteUnoptimizedFavicons', ['svgToFavicons', 'optimizeFavicons'], function() {

        return gulp.src(temporary, {read: false})
            .pipe(clean());

    });

    gulp.task('createFavicons', function(callback) {
        runSequence(
            'svgToFavicons',
            'optimizeFavicons',
            'deleteUnoptimizedFavicons',
            callback);
    });

    this.registerWatcher('createFavicons', input);

    return this.queueTask('createFavicons');

});

它不起作用,我不知道接下来要尝试什么:

/path/to/project/node_modules/favicons/index.js:77
                    throw error;
                          ^
Error: Command failed: convert: unable to open image `storage/temporary/images/favicons/16x16.png': No such file or directory @ error/blob.c/OpenBlob/2709.
convert: unable to open file `storage/temporary/images/favicons/16x16.png' @ error/png.c/ReadPNGImage/4050.
convert: unable to open image `storage/temporary/images/favicons/32x32.png': No such file or directory @ error/blob.c/OpenBlob/2709.
convert: unable to open file `storage/temporary/images/favicons/32x32.png' @ error/png.c/ReadPNGImage/4050.
convert: unable to open image `storage/temporary/images/favicons/48x48.png': No such file or directory @ error/blob.c/OpenBlob/2709.
convert: unable to open file `storage/temporary/images/favicons/48x48.png' @ error/png.c/ReadPNGImage/4050.
convert: no images defined `storage/temporary/images/favicons/favicon.ico' @ error/convert.c/ConvertImageCommand/3187.

    at ChildProcess.exithandler (child_process.js:648:15)
    at ChildProcess.emit (events.js:98:17)
    at maybeClose (child_process.js:756:16)
    at Socket.<anonymous> (child_process.js:969:11)
    at Socket.emit (events.js:95:17)
    at Pipe.close (net.js:465:12)

最佳答案

错误消息看起来很清楚 - 它找不到您要优化的网站图标。

关于javascript - 在 Laravel Elixir 中创建一个以指定顺序运行 Gulp 任务的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27213534/

相关文章:

laravel - 如何一起使用 Laravel 身份验证和 vue-router

php - Eloquent - 在列中搜索 ID,例如 ['4' ,'6' ,'8' ] (PHP Laravel)

reactjs - gulp 构建时出现奇怪的 gulp-uglify minifier 'file.isNull()' 错误

gulp - 如何使用 Gulp watch 仅在修改后的文件上运行任务

Javascript 优化 : Looping and handling different ways in different browsers

javascript - 从 jQuery 事件访问函数中的参数 * 和 * 事件

php - 如何在不刷新页面的情况下使用 AJAX 和 LARAVEL 在 MySQL 中插入数据

node.js - 无法在字符串上创建属性 'mark'

javascript - 使用下划线检查对象数组是否具有键值

javascript - VBA点击悬停下拉菜单