在终端中停止 Gulp 时如何关闭 BrowserSync 的旧实例?

How do you close old instances of BrowserSync when stopping Gulp in Terminal?

我是 Gulp 和 BrowserSync 的新手,所以我已经 运行 gulp 并多次停止(在终端中按 ctrl + z 强制)。每次我在终端中再次启动 gulp 时,BrowserSync 都会给我一个新的端口号。

我需要帮助删除 BrowserSync 的旧实例。终端中是否有可以查看和删除旧 BS 实例的命令?这可能吗? 我在端口 3001(本地)和 3002(UI)开始 BS,现在我在 3018!我想回到3001

此外,我如何修复我的 Gulpfile.js 代码,以便当我在终端中强制停止 gulp 时,browserSync 退出本地和 UI 服务器实例,因此端口号不会继续增加?

我在 Gulpfile.js 中的 BrowserSync 部分非常基础:

gulp.task('browser', function () {
  // Serve files from root of this folder
  browserSync({
      server: {
        baseDir: './'
      }
  });
  gulp.watch(['html/*.html', 'js/*.js']).on("change", reload);
});

gulp.task('default', ['styles','browser'], function() {
  gulp.watch('./sass/**/*.scss', ['styles']);
});

在我的mac终端中,最新的BS实例是30018,而UI恰好是3021(因为我最近使用了bs.server.close(),它关闭了本地实例,但不是 UI 实例。

[BS] Access URLs:
 --------------------------------------
       Local: http://localhost:3018
    External: http://192.168.1.164:3018
 --------------------------------------
          UI: http://localhost:3021
 UI External: http://192.168.1.164:3021
 --------------------------------------
[BS] Serving files from: ./
^Z
[16]+  Stopped                 gulp

问题是 ctrl + z 暂停 进程。 (参见 https://superuser.com/a/262948

你想要的是ctrl + c,这会杀死它。

首先,关闭您的终端,这应该会终止所有仍在后台活动的端口连接。

接下来,重新启动您的服务器,但使用 ctrl + c 退出。您应该能够使用此方法连续停止和重新启动。