tonymx227
tonymx227

Reputation: 5451

Gulp BrowserSync and npm start

I'd like to start my NodeJS application using BrowserSync but it seems not working.

Error message : Error: listen EADDRINUSE

Edit #1:

I found this way to resolve my issue.

gulp.task('sync', ['start', 'watch'], function(cb) {
    browserSync.init({
        files: ['**/*'],
        proxy: 'http://localhost:3000',
        port: 4000
    });
});

gulp.task('start', function() {
    var called = false;
    return nodemon({
        script: './bin/www',
        watch: ['Application.js']
    }).on('start', function onStart() {
        if (!called) {
            cb();
        }
        called = true;
    }).on('restart', function onRestart() {
        setTimeout(function reload() {
            browserSync.reload({
                stream: false
            });
        }, 500);
    });
});

Upvotes: 1

Views: 2823

Answers (1)

Remo H. Jansen
Remo H. Jansen

Reputation: 24941

EADDRINUSE means that the port number which listen() tries to bind the server to is already in use. So, in your case, there must be running a server on port 80 already. If you have another webserver running on this port you will get the EADDRINUSE error.

var gulp = require('gulp');
var browserSync = require('browser-sync');
var nodemon = require('gulp-nodemon');

gulp.task('default', ['browser-sync'], function () {
});

gulp.task('browser-sync', ['nodemon'], function() {
    browserSync.init(null, {
        proxy: "http://localhost:5000",
        files: ["**/*.*"],
        browser: "google chrome",
        port: 7000,
    });
});

gulp.task('nodemon', function (cb) {
    nodemon({
      script: './bin/www/app.js'
    })
    .on('start', function () {
      cb();
    })
    .on('error', function(err) {
     // Make sure failure causes gulp to exit
     throw err;
   });
});

Hope it helps :)

Upvotes: 5

Related Questions