为什么gulp-livereload崩溃错误:听EADDRINUSE?

时间:2014-09-26 13:37:00

标签: gulp gulp-livereload

我在gulp-livereload中使用gulpfile.js

它适用于CSS文件,但是HTML文件崩溃。

例如,每次保存index.html时,gulp都会崩溃并显示以下错误。

为什么会这样?

DEMO HERE

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: listen EADDRINUSE
    at errnoException (net.js:904:11)
    at Server._listen2 (net.js:1042:14)
    at listen (net.js:1064:10)
    at Server.listen (net.js:1138:5)
    at Function.app.listen (/Users/mishamoroshko/github-explorer/node_modules/express/lib/application.js:556:24)
    at Gulp.<anonymous> (/Users/mishamoroshko/github-explorer/gulpfile.js:64:10)
    at module.exports (/Users/mishamoroshko/github-explorer/node_modules/gulp/node_modules/orchestrator/lib/runTask.js:34:7)
    at Gulp.Orchestrator._runTask (/Users/mishamoroshko/github-explorer/node_modules/gulp/node_modules/orchestrator/index.js:273:3)
    at Gulp.Orchestrator._runStep (/Users/mishamoroshko/github-explorer/node_modules/gulp/node_modules/orchestrator/index.js:214:10)
    at /Users/mishamoroshko/github-explorer/node_modules/gulp/node_modules/orchestrator/index.js:279:18

2 个答案:

答案 0 :(得分:6)

您用于提供文件的端口已经在监听该端口。

答案 1 :(得分:3)

我不明白你为什么要加载connect-livereload,你可以简单地使用gulp插件。您的错误可能与两者发生冲突,因为它们使用相同的端口。

所以将 Gulpfile 更改为:

var livereload = require('gulp-livereload');

gulp.task('watch', function() {

  livereload.listen();

  gulp.watch(paths.scripts, ['jshint']).on('change', livereload.changed);
  gulp.watch(paths.styles, ['less']).on('change', livereload.changed);
  gulp.watch(paths.views).on('change', livereload.changed);

});

gulp.task('less', function() {
  return gulp.src('./app/app.less')
    .pipe(less({
      paths: []
    }))
    .pipe(gulp.dest('./app'))
    .pipe(livereload());
});

删除所有connect-livereload部分。