Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript gulp.watch TypeError:字符串不是函数_Javascript_Gulp - Fatal编程技术网

Javascript gulp.watch TypeError:字符串不是函数

Javascript gulp.watch TypeError:字符串不是函数,javascript,gulp,Javascript,Gulp,这是我的gulpfile.js: var gulp=require('gulp'); var clean=需要('gulp-clean'); var DEST_BASE=‘dist’; var JADE_TASK='JADE'; var JADE_SRC='app/**/ui/*.JADE'; 变量JADE_DEST=DEST_BASE+/dist/app'; gulp.task(JADE_任务,函数(){ 返回gulp.src(JADE_src).管道(gulp.dest(JADE_dest)

这是我的
gulpfile.js

var gulp=require('gulp');
var clean=需要('gulp-clean');
var DEST_BASE=‘dist’;
var JADE_TASK='JADE';
var JADE_SRC='app/**/ui/*.JADE';
变量JADE_DEST=DEST_BASE+/dist/app';
gulp.task(JADE_任务,函数(){
返回gulp.src(JADE_src).管道(gulp.dest(JADE_dest));
});
吞咽任务('clean',函数(){
return gulp.src(DEST_BASE,{read:false}).pipe(clean());
});
gulp.task('default',['clean',function()){
狼吞虎咽开始(JADE_任务);
});
gulp.task('watch',['default',function()){
吞咽手表(JADE_SRC,JADE_任务);
});
它所做的只是将文件从一个目录复制到另一个目录。当我跑的时候

gulp
gulp watch
它按预期复制文件。当我跑的时候

gulp
gulp watch
它按预期运行
默认任务。修改源文件时,会出现以下错误:

\node\u modules\gulp\node\u modules\乙烯基fs\node\u modules\glob watcher\index.js:17
if(cb)cb(outEvt);
^
TypeError:字符串不是函数
凝视着。(\node\u modules\gulp\node\u modules\venyl fs\node\u modules\glob watcher\index.js:17:14)
at Gaze.EventEmitter.emit(events.js:98:17)
在Gaze.emit(\node\u modules\gulp\node\u modules\乙烯基fs\node\u modules\glob watcher\node\u modules\Gaze\lib\Gaze.js:120:32)
在\node\u modules\gulp\node\u modules\乙烯基fs\node\u modules\glob watcher\node\u modules\gaze\lib\gaze.js:393:16
在StatWatcher._轮询器。(匿名函数)(\node_modules\gulp\node_modules\乙烯基fs\node_modules\glob watcher\node_modules\gaze\lib\gaze.js:316:7)
在StatWatcher.EventEmitter.emit(events.js:98:17)
在StatWatcher._handle.onchange(fs.js:1104:10)

除了使用Windows,我还做错了什么吗?(编辑:在OS X中可复制)

gulp.watch的第二个参数应该是数组或函数,而不是字符串

所以用这个来代替:

gulp.watch(JADE_SRC, [ JADE_TASK ]);

gulp.watch
的第二个参数应该是数组或函数,而不是字符串

所以用这个来代替:

gulp.watch(JADE_SRC, [ JADE_TASK ]);

我看到的一件事是,如果希望在watch任务之前同步调用它,则需要在默认任务中返回。我不确定“在默认任务中返回”是什么意思。我指的是watch任务,gulp.task('watch',['default'],function(){return gulp.watch(JADE_SRC,JADE_task);})使用“返回”确保在观看之前执行默认设置。谢谢,但问题仍然存在。我在默认任务和监视任务中都试过了(试过一个,然后是另一个,然后是两个)必须传递一个要执行的任务数组,即使只有一个任务要执行。我看到的一件事是,如果希望在监视任务之前同步调用它,则需要在默认任务中返回。我不确定“在默认任务中返回”是什么意思。我指的是监视任务,gulp.task('watch',['default'],function(){return gulp.watch(JADE_SRC,JADE_TASK);})使用“return”确保在观看之前执行默认值。谢谢,但问题仍然存在。我在默认任务和监视任务中都试过了(试过一个,然后是另一个,然后是两个)。还有一个建议,我认为gulp.watch()必须传递一个要执行的任务数组,即使只有一个任务要执行。