# zx

对node的一层封装,更方便写脚本命令行工具。

# 1】全局安装

npm i -g zx

# 2】使用方式

# ①方式一:shebang命令

表示的是别人在运行这个脚本的时候,需要根据环境去找zx可执行文件,然后找到zx之后去执行index.js后面的代码内容。

#! /usr/bin/env zx

console.log('hi zx')

在执行文件之前需要加上权限:

#给文件加权限
chmod +x index.js
#执行文件
./index.js

# ②方式二:zx调用

#直接使用zx调用该文件
zx ./index.js

# 3】实现小功能练手

我们想要实现使用命令行,来备份我们的github所有仓库到本地的功能。

注意:将脚本写入扩展名为 .mjs 的文件中,以便能够在顶层使用 await。如果您更喜欢 .js 扩展名,请将您的脚本包装在类似void async function () {...}()的内容中。

#! /usr/bin/env zx

console.log("hi zx");

//esm 顶层可以不写async也可以使用await
const data = await fetch("https://api.github.com/users/rayhomie/repos");
const urls = await data.json();
//处理数据
//获取所有的github仓库地址
const repos = urls.filter(({ fork }) => !fork).map(({ git_url }) => git_url);

//创建本地目录
await $`rm -rf backups`; //使用zx可以将linux命令进行转化
await $`mkdir backups`;
cd("./backups"); //zx提供的函数

Promise.all(
  repos.map((url) => {
    // return $`git clone ${url}`;
  })
);
Last Updated: 8/1/2021, 1:43:20 PM