1 个不稳定版本
0.1.0 | 2022年10月9日 |
---|
1 在 #turborepo 中
21KB
514 行
prism
prism 的目标是获取进程的输出并将其根据正则表达式分割成桶,然后使用漂亮的 TUI 单独查看每个桶的内容。
prism 主要用于管理 turborepo(https://turborepo.org/) 的输出,但它可以根据自定义的正则表达式分割输出(默认支持 turborepo 输出的正则表达式),因此它可以用于任何东西;它甚至可以在运行时显示自己的日志输出。
这一切可能听起来有点模糊,所以最好用一些演示来解释
使用模拟的 turborepo 项目运行它:[运行演示](https://asciinema.org/a/ln4BtwWKPMUqAaDycyswu2lXz)
在其自己的日志输出上运行:[运行演示](https://asciinema.org/a/X22mGKcchw8BVeyShtwscZrLL)
特性
- 自定义正则表达式
- 颜色支持
用法
注意:这是 alpha 级别的软件。请在自己的风险下使用。
$ prism -p <prefix_regex> <command>
其中 prefix_regex
是一个至少有两个捕获组的正则表达式。第一个捕获组将是前缀,第二个是消息。
在 TUI 中,使用 j
/k
导航前缀,使用 tab
在消息、stderr 和不可解析的消息之间循环。
示例
使用默认正则表达式运行 yarn dev
$ prism yarn dev
使用解析类似 DEBUG This is a message
的行的正则表达式运行 cat file
$ prism -p '^([A-Z]*?) (.*)' cat file
使用命令行标志运行命令
$ prism "tail -f file"
用它来分割自己的日志输出(注意:如果您想尝试这个,由于“递归”性质,日志文件会非常快地增长)
$ RUST_LOG=debug prism -p '\[.* ([A-Z]+ .*?)\] (.*)' "tail -f log" 2>log
已知问题
- 当与
turborepo
一起使用时,子进程无法可靠地终止 - 退出时,终端状态通常不佳,需要执行
reset
- 默认正则表达式可能不是很好
待办事项
- 滚动消息
- 测试
- 可配置的回滚限制
- 显示进程已退出的指示器
依赖项
~9–19MB
~245K SLoC