2014-09-26 34 views
2

我在我的gulpfile.js中使用gulp-livereload为什么gulp-livereload崩溃时发生错误:listen EADDRINUSE?

它对CSS文件工作正常,但对HTML文件崩溃。

例如,每次我节省index.html时,吞吐量崩溃,下面的错误。

这是怎么发生的?

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 

回答

3

你为什么要装connect-livereload我不明白,你可以简单地使用一饮而尽插件。你的错误可能与两者有冲突,因为它们使用相同的端口。

因此改变你的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部分。

+0

谢谢,这很有道理!我用你的建议更新了[回购](https://github.com/moroshko/github-explorer)。现在的问题是重新加载'* .less'文件(而不是* .css),这不是很有帮助。另外,当我修改'* .js'文件(例如'home-controller.js')时,它说'home-controller.js被重新加载了,但不刷新浏览器。有任何想法吗? – 2014-09-26 14:21:06

+0

哼,对于第一个问题,你可能想在'less'转换完成后,对你的'livereload'进行管道,所以在'less'任务结束时。你可以用'jshint'task来试试吗?更新我的答案举个例子 – 2014-09-26 14:24:47

+0

试过了,但现在它和JS文件的问题一样。它说“app.css已重新加载”,但不刷新浏览器。我也尝试在jshint任务中使用livereload,但没有运气,浏览器没有刷新(也有重新加载所有脚本的副作用,而不仅仅是我修改的脚本)。再次,我更新了回购。 – 2014-09-26 14:36:01

6

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

相关问题