1

BrowserSync を使用して NodeJS アプリケーションを開始したいのですが、動作していないようです。

エラー メッセージ: エラー: listen 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);
    });
});

4

1 に答える 1

5

EADDRINUSElisten()サーバーをバインドしようとするポート番号が既に使用されていることを意味します。したがって、あなたの場合、すでにポート 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;
   });
});

それが役に立てば幸い :)

于 2015-03-25T10:04:42.570 に答える