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

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


person Mark A J Checkley    schedule 16.03.2016    source источник


Ответы (2)


API снова изменился со времен Elixir v3.0.0. Итак, для версии 4.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.

person Stephen C    schedule 18.05.2016
comment
спасибо за var Task = elixir.Task; это спасло мой день :) Кстати, мы можем создать новый elixir.Task('taskname',function(){........}); слишком. - person Mikhail.root; 13.12.2016

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);
    });
});
person Oliver    schedule 02.04.2016