# 背景

8 月 5 日,谷歌开源了一款工具,受到了大家的欢迎,到目前这个项目已经收获了 22.3k 的点赞,很多小伙伴都反馈这款工具很好用。

zx 是一个更方便、更友好地帮助开发者写脚本的工具

# 项目用法

如果你对一些 linux 或者 window 等平台的命令行比较熟悉,并且会一些 JavaScript 的语法,那么使用这个工具就可以得心应手。比如作为一个前端开发者,我想要使用命令行新建一个前端的项目并且运行它,我们可以这么做。

# 1. 安装 node.js

从 node.js 官网下载版本大于等于 14.8.0 版本

# 2. 安装 zx 工具

因为 node.js 自带 npm 包管理工具,可以使用 npm 指令进行 zx 的安装:

// 全局安装 zx
npm install -g zx

# 4. 安装 vue-cli 工具

因为要创建一个前端 vue 项目,我们需要安装 vue-cli 脚手架工具:

npm install -g vue-cli

# 3. 编写 .mjs 文件

我们需要书写一个 .mjs 文件。

  • createVueApp.mjs
#!/usr/bin/env zx
await $`vue create vue-demo`
await $`cd vue-demo`
await $`npm run dev`

# 4. 运行 .mjs 文件

通过 zx 工具运行文件,执行脚本

zx createVueApp.mjs

# 项目效果

可以看出,它会自动执行文件里面的脚本,对于一些比较固定的指令,我们可以把它写在文件里面,下次要是有类似操作,只需要跑一下脚本即可。

# 项目功能

项目提供了还多工具

$`指令` 
// 创建一个文件
let name = 'test'
await $`mkdir ${name}`
// 进行一些 git 指令的操作
let flags = [
  '--oneline',
  '--decorate',
  '--color',
]
await $`git log ${flags}`
// 程序要异常退出
try {
  await $`exit 1`
} catch (p) {
  console.log(`Exit code: ${p.exitCode}`)
  console.log(`Error: ${p.stderr}`)
}
// 函数
cd()
// 切换到 /tmp
cd('/tmp')
await $`pwd`
fetch()
// 请求资源
let resp = await fetch('https://www.baidu.com')
if (resp.ok) {
  console.log(await resp.text())
}
...

# 项目地址

https://github.com/google/zx