Gulp / Node.js错误:连接ECONNREFUSED

时间:2014-03-18 05:00:42

标签: javascript node.js cmd gulp

我目前正在使用WAMP运行本地服务器,我正在尝试设置Gulp.js.以下是我的gulpfile的内容:

var gulp = require('gulp'),
    sass = require('gulp-ruby-sass'),
    autoprefixer = require('gulp-autoprefixer'),
    minifycss = require('gulp-minify-css'),
    minifyhtml = require('gulp-minify-html'),
    jshint = require('gulp-jshint'),
    uglify = require('gulp-uglify'),
    imagemin = require('gulp-imagemin'),
    rename = require('gulp-rename'),
    clean = require('gulp-clean'),
    concat = require('gulp-concat'),
    notify = require('gulp-notify'),
    cache = require('gulp-cache'),
    livereload = require('gulp-livereload'),
    lr = require('tiny-lr'),
    server = lr();

gulp.task('styles', function() {
    gulp.src('src/styles/main.scss')
        .pipe(sass({ style: 'expanded' }))
        .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
        .pipe(gulp.dest('dist/assets/css'))
        .pipe(rename({suffix: '.min'}))
        .pipe(minifycss())
        .pipe(gulp.dest('dist/css'))
        .pipe(livereload(server))
        .pipe(notify({ message: 'Styles task complete' }));
});

gulp.task('html', function() {
    gulp.src('src/*.php')
        .pipe(minifyhtml())
        .pipe(gulp.dest('dist'))
        .pipe(livereload(server))
        .pipe(notify({ message: 'HTML task complete' }));
});

gulp.task('default', function() {
    gulp.run('html');
});

这是我运行gulp时得到的输出:

[gulp] Using gulpfile C:\wamp\www\SawyerK\gulpfile.js
[gulp] Starting 'default'...
gulp.run() has been deprecated. Use task dependencies or gulp.watch task trigger
ing instead.
[gulp] Starting 'html'...
[gulp] Finished 'html' after 132 ms
[gulp] Finished 'default' after 134 ms
[gulp] gulp-notify: [Gulp notification] HTML task complete

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: connect ECONNREFUSED
    at errnoException (net.js:904:11)
    at Object.afterConnect [as oncomplete] (net.js:895:19)

从我发现的,这个错误被抛出,因为其他东西正在使用Node想要的端口或类似的东西?但是,我不完全确定这是否正确,我肯定不知道如何解决它。有什么想法吗?谢谢!

编辑:如果有帮助的话,我似乎已将其缩小为gulp-notify

2 个答案:

答案 0 :(得分:3)

我认为问题是你在样式任务和HTML中使用了livereload两次。也许最好使用观察者的livereload:

gulp.task('watch', function() {
  var server = livereload();
  gulp.watch('build/**').on('change', function(file) {
      server.changed(file.path);
  });
});

更新: 对不起,错了=)这是一篇很棒的文章,第二部分展示了如何使用监视任务。 link要使用livereload,您需要使用listen方法启动服务器。

答案 1 :(得分:0)

你偶然发现Windows吗?我的开发团队遇到了这个问题,它看起来在Windows 7+ gulp-notify上需要Growl。 :/

您可以在gulpforwindows.com下载exe,我相信您也需要重启机器。

https://github.com/mikaelbr/gulp-notify/issues/30

https://github.com/mikaelbr/gulp-notify#requirements