CodeLauncher · 我们做了一个 macOS 上的后端开发服务器进程管理工具

2022-01-03 19:00:44 +08:00
 Livid

大部分的现代 Web 开发框架,都需要启动一个进程,然后当你改了什么东西的时候,它就自动 build 或者重启。

所以我们为了自己每天的需求,做了一个管理工具 CodeLauncher ,用来启动那些本地开发时需要的各种进程,及查看其输出:

进程启动之后,右键菜单上会提供一些常用的功能:

在添加项目的时候,可以指定执行文件的绝对路径。如果没有指定绝对路径,那么会从当前的 PATH 中去猜。及指定工作目录和环境变量。

最新版本的下载和源代码欢迎访问项目网站 cl.v2ex.pro

12900 次点击
所在节点    分享创造
48 条回复
airyland
2022-01-03 19:50:42 +08:00
赞。如果可以从 menubar 快捷查看和操作可能会更方便。
Livid
2022-01-03 19:53:13 +08:00
@airyland 嗯,收到。目前是 1.0 版本刚刚上线,把基本流程跑起来。接下来确实还有很多可以改进的。
Kai
2022-01-03 19:53:30 +08:00
@airyland 感谢建议,也可以直接添加 Issues :D
leaves615
2022-01-03 19:59:44 +08:00
非常棒。做的很漂亮,我也写了一个差不多的。不过没有你写的漂亮。
xstmjh123
2022-01-03 20:37:16 +08:00
感觉像 PM2 的 UI 版?
devliu1
2022-01-03 21:26:27 +08:00
天呐 我之前也做了个,只是没有 UX 。

@xstmjh123
@leaves615
fyibmsd
2022-01-03 21:42:23 +08:00
可以支持下导入 brew services 吗
chenkali
2022-01-03 23:23:23 +08:00
能否 调整最低支持版本 macos 10.X ? 好像必须是 macos 11 ?
mcfog
2022-01-04 08:53:57 +08:00
之前一直用的 https://github.com/cortesi/modd 建议参考核心需求:
pattern match 修改什么文件重启
多个进程一组管理(常见:前端+后端+反代)
配置导出文本格式 /导入

之前命令行的痛点主要是输出日志混在一起,然后就是只能整组启停不能临时 disable 导致经常不必要地重启 webpack
Livid
2022-01-04 09:56:30 +08:00
@mcfog

CodeLauncher 支持把一个项目里的多个不同的进程配置在一个 Project 里。然后点击上面的进程或者下面的下拉列表就可以切换看输出,比如这是在一个 Python Flask 项目里,主进程和一个按需运行的 pytest 进程:

Livid
2022-01-04 09:58:44 +08:00
@fyibmsd 嗯,确实。

目前 brew services 启动之后看输出不方便。
Livid
2022-01-04 10:00:03 +08:00
@chenkali 这个我们试试。因为是用 SwiftUI 写的,所以如果用户端的 macOS 版本比较新的话,就可以支持很多 SwiftUI 的新功能。
Livid
2022-01-04 10:07:23 +08:00
@mcfog 观察一个目录里的文件更改,然后 process manager 来重启进程这个目前 CodeLauncher 还没有实现。我们目前主要是在用 CodeLauncher 来启动已经具有这类行为的框架,比如 Flask ,Zola 等等。

自身支持文件观察然后重启进程这个接下来我们研究一下。

你目前在开发什么的时候会需要用到这样的场景?
mcfog
2022-01-04 11:27:55 +08:00
@Livid golang 项目,PHP 的 swoole/workerman 之类非 fpm 的项目,包括 node 项目为了统一方案我都会用 modd 来管
hccsoul
2022-01-04 11:36:11 +08:00
Hope to add Chinese support
orqzsf1
2022-01-04 11:46:10 +08:00
mark ,我也想做一个类似的。。今天就看到了
Livid
2022-01-04 12:37:57 +08:00
@mcfog 所以,比如 golang 项目就是,目录里如果符合某个 pattern 的文件发生变更了,就跑一个 build 指令。然后这个 build 指令是那种跑完就退出,不会一直运行的?
Buges
2022-01-04 13:00:46 +08:00
@Livid #17 这种需求可以直接内置一个 watchexec ,不需要自己再实现一遍了。另外对 golang 而言是有专门的 hot reload 工具的 https://github.com/cosmtrek/air
AilF
2022-01-04 13:29:41 +08:00
点赞,试用看看
abigeater
2022-01-04 13:42:39 +08:00
回家试用下。
经常在终端里起了程序后忘记结束进程再关闭终端,然后只能手动通过 PID kill 掉。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/825937

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX