Gulp elixir.queueTask未定义

Gulp elixir.queueTask未定义,gulp,laravel-elixir,Gulp,Laravel Elixir,我对Laravel5.2和Elixir/gulp还比较陌生,但是当我从命令行运行gulp时,queueTask没有定义 我想做的是扩展elixir以删除一些文件(根据我能找到的所有文档,这就是我需要做的),因此我有以下几点: var gulp = require('gulp'); var elixir = require("laravel-elixir"); var del = require('del'); elixir.extend("remove", function(path) {

我对Laravel5.2和Elixir/gulp还比较陌生,但是当我从命令行运行gulp时,queueTask没有定义

我想做的是扩展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
谁能解释一下我做错了什么吗?

API在年被修改了

您不再需要调用
Gulp.task()
。Elixir将处理这个问题,相反,您必须创建一个新任务

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

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

自从Elixir v3.0.0以来,API再次发生了变化。因此,对于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
。然后返回一个
新的elixir.Task

谢谢你的var Task=elixir.Task;这节省了我的时间:)顺便说一句,我们可以使用新的elixir.Task('taskname',function(){……。});也