运行gulp任务时出现gulp-livereload错误

时间:2014-07-11 18:11:17

标签: javascript node.js gulp

在两个项目中运行gulp-livereload + tiny-lr,我只在最后一个项目中出错,当我使用相同的gulpfile.js时,尝试每次只运行一次,但没有工作,只有我的上一个项目得到了错误:

... Uhoh. Got error listen EADDRINUSE ...
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 Server.listen (/var/www/havikhunting/node_modules/gulp-livereload/node_modules/tiny-lr/lib/server.js:138:15)
    at Function.exports.listen (/var/www/havikhunting/node_modules/gulp-livereload/gulp-livereload.js:68:12)
    at Function.exports.changed (/var/www/havikhunting/node_modules/gulp-livereload/gulp-livereload.js:88:20)
    at Transform.reload._transform (/var/www/havikhunting/node_modules/gulp-livereload/gulp-livereload.js:24:13)
    at Transform._read (_stream_transform.js:179:10)
    at Transform._write (_stream_transform.js:167:12)
[gulp] Starting 'compileStyles'...
[gulp] Finished 'compileStyles' after 52 ms
[15:06:10] gulp-ruby-sass: directory 
[15:06:11] gulp-ruby-sass: error ./style.scss (Line 1: File to import not found or unreadable: ../partials/base.
Load path: /tmp/gulp-ruby-sass)

my gulpfile:

var gulp      = require('gulp'),
    sass      = require('gulp-ruby-sass'),
    minifycss = require('gulp-minify-css'),
    refresh   = require('gulp-livereload'),
    server    = require('tiny-lr')();

gulp.task('default', function() {
    // Tarefas
});

gulp.task('compileStyles', function() {
    gulp.src('public/assets/css/style.scss')
        .pipe(sass({
            noCache      : true,
            precision    : 4,
            unixNewlines : true
        }))
        .pipe(minifycss())
        .pipe(gulp.dest('public/assets/css'))
        .pipe(refresh(server));
});

gulp.task('watch', function() {
    server.listen(35729, function( err ) {
        if ( err ) { return console.log( err ); }

        gulp.watch('public/assets/css/**/*.{sass,scss}', [
            'compileStyles'
        ]);
    });
});

2 个答案:

答案 0 :(得分:1)

错误消息显示livereload服务器无法加载,因为该地址已被使用。

您是否同时运行项目?为此,您需要将两个livereload服务器放在不同的端口上。您可以通过在其中一个gulp文件中将35729更改为35728来配置它。

根据浏览器的设置方式,您可能需要调整其设置。试试看,它可能没问题。

答案 1 :(得分:0)

使用以下方法检查正在侦听该端口的进程:

fuser port_no/tcp

然后使用

终止该进程
kill -9 pid