Zx 是由谷歌开发的一款可以更方便更友好地帮助开发者编写脚本的工具。
在编写脚本的时候,大家通常会选择一种更方便的编程语言,例如 JavaScript 。不过标准的 Node.js 库在使用之前需要许多额外的操作,比如安装、导入库等。zx 为child_process
提供了封装器,用于转义参数并提供切合实际的默认值。
#!/usr/bin/env zx
await $`cat package.json | grep name`
let branch = await $`git branch --show-current`
await $`dep deploy --branch=${branch}`
await Promise.all([
$`sleep 1; echo 1`,
$`sleep 2; echo 2`,
$`sleep 3; echo 3`,
])
let name = 'foo bar'
await $`mkdir /tmp/${name}`
zx 3.0.0 主要变化如下:
- 使用继承的标准输入而不是管道
- 对测试文件和示例文件进行分离
- 为支持解析正确的脚本扩展名,修复了修剪查询字符串方法
- 添加退出代码信息
- 修复在 question() 调用处的中断
- 在 TS compile 添加错误打印操作
- 如果已经解决错误,
pipe()
会抛出异常 - 在- Markdown 脚本中添加对 bash 代码块的支持
- 修复引用和替换错误
- 修复 JS 堆栈的拆分正则表达式问题
下一节:Apache Commons Geometry 是一个用于几何处理的通用 Java 库。该代码起源于 commons-math 项目的 org.apache.commons.math3.geometry 包, 但为了更好的可维护性被拉到一个单独的项目中。从那以后,它经历了许多改进,包括对核心接口和类的重大重构。