在 sublime 中如何再次构建时自动中止上一次构建

在 sublime 中如何再次构建时自动中止上一次构建

我知道有取消构建的键映射。但我希望当我按下 Ctrl+B 时,它会自动中止之前的构建。

  1. 是否可以?

  2. “取消”构建是否有可能做一些工作。而不仅仅是终止程序(例如,发送终止信号,让 NodeJS 程序有时间关闭所有套接字...)

例如:

http.createServer().listen(80)

第一次按下 Ctrl+B 时,它可以工作,但第二次按下时,我总是得到无法绑定到端口 80...

答案1

  • 让你的应用程序写入一个 pid 文件。

    在生成服务的构建脚本中写入您自己的 pid。或者由服务本身编写,Apache 和 NGinx 等应该在某处编写自己的 pid。如果这是您的应用程序,您可能需要考虑编写自己的 pid 文件。据我所知,通常的位置是 /var/run系统进程,启动 web 服务可能符合条件,或者~/.appname,这是您主目录中以您的应用程序命名的隐藏文件。

    在WindowsNT环境中获取你的 pid 可能比较棘手, 和通过 pid 终止进程也可能很棘手。

  • 在构建时,在生成应用程序之前,通过 pidfile 中指定的 id 终止先前的构建进程。

原型代码:

详细并评论:https://gist.github.com/thorsummoner/f1fc7acf94cf9696ef75

我无法再将它简化了,它有大约 70 行面向函数的代码,需要修改才能用于特定用途。

它也没有经过测试,因为我没有特别好的用例。

相关内容