Gulp BrowserSync和npm启动

时间:2015-03-25 09:19:48

标签: gulp browser-sync

我想使用BrowserSync启动我的NodeJS应用程序,但它似乎无效。

错误讯息:错误:收听EADDRINUSE

编辑#1:

我找到了解决问题的方法。



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);
    });
});




1 个答案:

答案 0 :(得分:5)

EADDRINUSE表示listen()尝试绑定服务器的端口号已在使用中。因此,在您的情况下,必须已在端口80上运行服务器。如果您在此端口上运行另一个Web服务器,则会出现EADDRINUSE错误。

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;
   });
});

希望有所帮助:)