Gulp水管工不能管道未定义

时间:2014-10-19 00:37:15

标签: javascript node.js gulp gulp-watch gulp-less

我正在尝试,编写一个模块,当gulp正在观察任务时,并且Less文件因某些错误而更改,它应该向控制台发送消息,但它不应该使系统崩溃,它不会: 这是我写的代码:

var onError = function (err) {  
  console.log(err);
};

gulp.task('styles', function () {  
   gulp.src('./{views}/**/*.{less}')
     .pipe(plumber({
       errorHandler: onError
     }))
     .pipe(less())
     .pipe(gulp.dest('build/styles/common.css'));
 });

当我运行上面的代码时,我收到以下错误:

'styles' errored after 20 ms
Error in plugin 'plumber'
Message:
    Can't pipe to undefined

3 个答案:

答案 0 :(得分:1)

我遇到了同样的错误。我通过在管道工之后添加()来解决它。这是代码。

早期代码:

gulp.task('scripts',function(){
gulp.src('admin-scripts.js')
    .pipe(plumber)
    .pipe(uglify().on('error', function(e){
        console.log(e);
    }))
    .pipe(gulp.dest('build/js'));

});

固定代码:

gulp.task('scripts',function(){
gulp.src('admin-scripts.js')
    .pipe(plumber())
    .pipe(uglify().on('error', function(e){
        console.log(e);
    }))
    .pipe(gulp.dest('build/js'));

});

水管工后我错过了()。 希望这会有所帮助。

答案 1 :(得分:0)

您确定使用

安装了 gulp-less 吗?
npm install --save-dev

并使用

gulpfile 中引用它
var less = require('gulp-less');

当管道的目的地(此处 less )未定义时,管道工发生此错误。

为什么你在这里使用{}?我认为它们有点无用,因为你只针对其中的一件事,你可以删除它们。

答案 2 :(得分:0)

是的,我已经安装了gulp-less,我找到了解决这个问题的方法: 它应该如下:

  gulp.task('mystyle', function () {  
    gulp.src('build/stylesfiles.less').pipe(plumber()).pipe(less()).
    pipe(gulp.dest ('build/styles/assets'));
    });

基本上我不需要错误消息,它会给我一个默认错误,这可以让我的工作完成。使用上面的代码将确保它运行,并给我我的错误,但不会崩溃服务器.. ..但是谢谢你" Apercu"