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

时间:2016-06-27 17:08:07

标签: node.js terminal gulp gulp-browser-sync

我是Gulp和BrowserSync的新手,所以我已经多次运行gulp并停止(在终端中强制使用ctrl + z)。每次我在终端再次开始gulp时,BrowserSync会给我一个新的PORT号码。

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

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

Gulpfile.js中的My 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

1 个答案:

答案 0 :(得分:8)

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

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

首先,关闭你的终端,这应该杀死在后台仍然活动的任何端口连接。

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