elixir.queueTask не определен

Я довольно новичок в Laravel 5.2 и Elixir/gulp, но у меня есть проблема с неопределенностью queueTask, когда я запускаю gulp из командной строки.

То, что я хочу сделать, это расширить elixir для удаления некоторых файлов (согласно всей документации, которую я могу найти, это то, что мне нужно сделать), поэтому у меня есть это:

var gulp = require('gulp');
var elixir = require("laravel-elixir");
var del = require('del');

elixir.extend("remove", function(path) {
        gulp.task("removeFiles", function() {
            return del(path);
        });
        return this.queueTask("removeFiles");
    });

а потом в моем миксе у меня есть:

    .remove([
        "path/to/file1/filename1",
        "path/to/file2/filename2"
    ])

Когда я запускаю gulp в командной строке, я получаю:

return this.queueTask("removeFiles");
            ^
TypeError: undefined is not a function

Может кто-нибудь пролить свет на то, что я делаю неправильно, пожалуйста?

2 ответа

API снова изменился с Elixir v3.0.0. Так что для v4.0.0 вы должны сделать это:

var elixir = require('laravel-elixir');
var del = require('del');

var Task = elixir.Task;

elixir.extend('remove', function (path) {
    new Task('remove', function () {
        return del(path);
    });
});

И тогда вы можете вызвать его в своем конвейере следующим образом:

mix.remove([
    "path/to/file1/filename1",
    "path/to/file2/filename2"
]);

Разница, кажется, зовет elixir.extend в отличие от elixir.Task.extend, А потом возвращая new elixir.Task,

API был изменен в Elixir v3.0.0.

Вам больше не нужно звонить Gulp.task(), Эликсир справится с этим, вместо этого вы должны создать новую задачу.

var Elixir = require('laravel-elixir');
var del = require('del');

Elixir.Task.extend('remove', function (path) {
    new Task('remove', function () {
        return del(path);
    });
});
Другие вопросы по тегам