Clii - 编写命令行从未如此简单

2022-02-21 09:32:43 +08:00
 sigoden

Clii - 编写命令行从未如此简单

安装包

npm i clii
yarn add clii

写一个常规函数

/**
 * A simple task
 * @param {Object} options
 * @param {number} options.num - Num variable
 * @param {("prod"|"dev"|"stage")} options.mode - Build mode
 */
export async function task(options) {
  console.log(options);
}

引入 Clii

import clii from "clii";

clii(import.meta.url);

一个命令行完成了

clii task1 [options]

A simple task

Options:
      --version  Show version number                                   [boolean]
  -f, --file     Specific clii file                                     [string]
  -w, --workdir  Specific working directory                             [string]
      --num      Num variable                                           [number]
      --mode     Build mode           [string] [choices: "prod", "dev", "stage"]
  -h, --help     Show help                                             [boolean]

你可以使用 clii 管理项目脚本。

编写cliifile.mjs(相当于 js 版本的 Makefile)

function lint() {}
/**
 * Build
 * @param {Object} options
 * @param {boolean} prod
 */
function build(options) {
  lint()
}
$ clii
Usage: clii <cmd> [options]

Commands:
  clii lint
  clii build [options]  Build

Options:
      --version  Show version number                                   [boolean]
  -f, --file     Specific clii file                                     [string]
  -w, --workdir  Specific working directory                             [string]
  -h, --help     Show help                                             [boolean]

$ clii lint
$ clii build

仓库: https://github.com/sigoden/clii

1916 次点击
所在节点    分享创造
2 条回复
xujiahui
2022-02-21 10:08:28 +08:00
可以看看 zx ( https://github.com/google/zx ),挺火的
sigoden
2022-02-21 10:17:11 +08:00
@xujiahui clii 的着重提供命令界面。zx 是个异步 shell 执行器。

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

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

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

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

© 2021 V2EX