Задача gull nodemon + browserSync вызывает ошибку EADDRINUSE ::: 3000 - PullRequest
0 голосов
/ 11 октября 2018

У меня проблемы с созданием nodemon + browserSync через задачу gulp.Я искал в Интернете возможное решение.Я посмотрел на сайте StackOverflow, но до сих пор не нашел успеха в решении моей проблемы.Я сталкиваюсь с этой проблемой

events.js:167
      throw er; // Unhandled 'error' event
      ^
Error: listen EADDRINUSE :::3000

Я не уверен, почему, когда я выполняю gulp в командной строке, я получаю эту ошибку EADDRINUSE :::3000.Я проверил порт, используя netstat -ano | findStr "9000", порт не вызывается другим процессом.Я не уверен, почему я сталкиваюсь с этой проблемой, когда я выполняю свое задание глотка.Может кто-нибудь, пожалуйста, дать некоторые рекомендации?Я буду очень признателен, у меня заканчиваются варианты.

gulpfile.js

gulp.task('nodemon', function (cb) {
    var called = false;
    return nodemon({
      script: './server.js',
      ignore: [
        '../server/gulpfile',
        '../server/server.js',
        '../server/node_modules/'
      ],
    }).on('start', function () {
      if (!called) {
        cb();
        called = true;
      }
    }).on('restart', function () {
      setTimeout(function () {
        reload({ stream: false });
      }, 1000);
      });
  });

  gulp.task('browser-sync', ['nodemon'], function() {
   browserSync.init({
    proxy: 'http://localhost:9000',
    open: false,
    browser:'google-chrome',
    port: 9000, 
    notify: true
  });
});

// Static Server + watching scss/hbs files
gulp.task('serve', ['sass'], function() {

  browserSync.init({
      server: "./client"  
  });

  gulp.watch(['node_modules/**/*.scss', '../client/**/*.scss'], ['sass']);
  gulp.watch("client/views/partials/*.hbs").on('change', browserSync.reload);

});
 gulp.task('default', ['js','serve', 'browser-sync']);

Структура папки Изображение структуры папки

1 Ответ

0 голосов
/ 12 октября 2018

ранее я писал об ошибке, с которой столкнулся, используя nodemon и browserSync вместе.Я наконец понял проблему, с которой столкнулся.Причина, по которой я получил ошибку EARDINUSE3000 , заключалась в том, что я дважды вызывал browerSync в своем gulpfile.js Решением моей проблемы было следующее.

gulp.task('nodemon', function (cb) {
    var called = false;
    return nodemon({
      script: './server.js',
      ignore: [
        '../server/gulpfile',
        '../server/server.js',
        '../server/node_modules/'
      ],
    }).on('start', function () {
      if (!called) {
        cb();
        called = true;
      }
    }).on('restart', function () {
      setTimeout(function () {
        reload({ stream: false });
      }, 1000);
      });
  });


  gulp.task('browser-sync', ['nodemon'], function() {
   browserSync.init({
    proxy: 'http://localhost:3000',
    open: false,
    browser:'google-chrome',
    port: 4000, 
    baseDir: 'build',
    notify: true,
  });

  gulp.watch(['node_modules/bootstrap/scss/bootstrap.scss', '../client/**/*.scss'],
  ['sass']);
  gulp.watch('client/**/*.hbs').on('change', browserSync.reload);
});

 gulp.task('default', ['js', 'browser-sync']);

Для тех, кто столкнется с этой проблемой в будущем, я надеюсь, что это полезно.

...