【问题标题】:nodemon + browserSync gulp task causes EADDRINUSE :::3000 errornodemon + browserSync gulp 任务导致 EADDRINUSE :::3000 错误
【发布时间】:2019-03-15 23:57:58
【问题描述】:

我在通过 gulp 任务创建 nodemon + browserSync 时遇到问题。我在网上搜索了一个可能的解决方案。我查看了 StackOverflow 站点,但我仍然没有找到任何成功的解决方案来解决我的问题。我遇到了这个问题

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

我不确定为什么在命令行中执行 gulp 时会收到此错误 EADDRINUSE :::3000。我已经使用netstat -ano | findStr "9000" 检查了端口,该端口没有被另一个进程调用。我不确定为什么在执行 gulp 任务时会遇到这个问题。有人可以提供一些指导吗?我将不胜感激我的选择已经不多了。

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']);

文件夹结构 folder structure image

【问题讨论】:

  • 你检查了 3000 吗?你写了你检查了 9000 这不是它所说的正在使用的地址。
  • 我不明白为什么它指向那个地址,因为我的端口指定 9000。我在设置 nodemon 和 browserSync 任务的方式上做错了什么?
  • 我也在 server.js 文件 app.listen(9000, () => { console.log('Running → PORT 9000'); 中指向 9000

标签: node.js express browser-sync nodemon gulp-task


【解决方案1】:

之前我曾发布过我在同时使用 nodemon 和 browserSync 时遇到的一个错误。我终于弄清楚了我遇到的问题。我收到 EARDINUSE3000 错误的原因是因为我在 gulpfile.js 中调用了 browerSync 两次。我的问题的解决方案是这样的。

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']);

对于以后遇到此问题的任何人,我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2014-12-11
    • 1970-01-01
    • 2016-09-16
    • 2017-08-10
    • 2016-08-29
    • 2016-07-22
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    相关资源
    最近更新 更多