我对Laravel 5.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
有人可以对我做错了吗?
答案 0 :(得分:3)
自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
。然后返回new elixir.Task
。
答案 1 :(得分:0)
您不再需要致电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);
});
});