# cliui 中文文档

规范地址：https://npmcn.com/package/cliui/

版本：9\.0\.1
npm 元数据更新时间：2025-03-17T02:36:25.675Z
中文译文更新时间：2026-11-04T12:41:51.645Z
软件包许可：ISC

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/cliui
原文对照：https://npmcn.com/package/cliui/?lang=original
项目主页：https://github.com/yargs/cliui#readme
源码仓库：https://github.com/yargs/cliui

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：57.4 kB，7 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=20
- 运行依赖：3 个
- 首次发布：2015-04-20T21:30:56.852Z
- 最新版本发布：2025-03-17T02:36:25.499Z
- 近 30 天下载量：1033751747（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：27（近 12 个月 0 个）

## 中文简介

轻松创建复杂的多列命令行界面

## 安装

```sh
npm install cliui
```

也可以使用：`pnpm add cliui`、`yarn add cliui`、`bun add cliui`

## README

# cliui

![ci](https://github.com/yargs/cliui/workflows/ci/badge.svg) [![NPM version](https://img.shields.io/npm/v/cliui.svg)](https://www.npmjs.com/package/cliui) [![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org/) ![nycrc config on GitHub](https://img.shields.io/nycrc/yargs/cliui)

轻松创建复杂的多列命令行界面。

## 例子

```bash
npm i cliui@latest chalk@latest
```

```js
const ui = require('cliui')()
const {Chalk} = require('chalk');
const chalk = new Chalk();

ui.div('Usage: $0 [command] [options]')

ui.div({
  text: 'Options:',
  padding: [2, 0, 1, 0]
})

ui.div(
  {
    text: "-f, --file",
    width: 20,
    padding: [0, 4, 0, 4]
  },
  {
    text: "the file to load." +
      chalk.green("(if this description is long it wraps).")
    ,
    width: 20
  },
  {
    text: chalk.red("[required]"),
    align: 'right'
  }
)

console.log(ui.toString())
```

## Deno / ESM支持

的 `v7` `cliui` 支持 [Deno](https://github.com/denoland/deno) 和 [ESM](https://nodejs.org/api/esm.html#esm_ecmascript_modules)：

```typescript
import cliui from "cliui";
import chalk from "chalk";
// Deno: import cliui from "https://deno.land/x/cliui/deno.ts";

const ui = cliui({})

ui.div('Usage: $0 [command] [options]')

ui.div({
  text: 'Options:',
  padding: [2, 0, 1, 0]
})

ui.div(
  {
    text: "-f, --file",
    width: 20,
    padding: [0, 4, 0, 4]
  },
  {
    text: "the file to load." +
      chalk.green("(if this description is long it wraps).")
    ,
    width: 20
  },
  {
    text: chalk.red("[required]"),
    align: 'right'
  }
)

console.log(ui.toString())
```

![](https://npmcn.com/package/cliui/screenshot.png)

## 布局DSL

cliui公开了一个简单的布局DSL：

如果你创建一个 `ui.div`，传递一个字符串而不是一个 对象:

-   `\n`：字符将被解释为新的行。
-   `\t`：字符将被解释为新的列。
-   `\s`：字符将被解释为填充。

**举个例子……**

```js
var ui = require('./')({
  width: 60
})

ui.div(
  'Usage: node ./bin/foo.js\n' +
  '  <regex>\t  provide a regex\n' +
  '  <glob>\t  provide a glob\t [required]'
)

console.log(ui.toString())
```

**将输出:**

```shell
Usage: node ./bin/foo.js
  <regex>  provide a regex
  <glob>   provide a glob          [required]
```

## 方法

```js
cliui = require('cliui')
```

### cliui({宽度:整数})

指定正在生成的UI的最大宽度。 如果没有提供宽度，cliui将尝试获取当前窗口的宽度并使用它，如果不工作，width将被设置为 `80`。

### cliui({包装:布尔})

启用或禁用列中的文本换行。

### cliui。Div（列，列，列）

创建具有任意数量列的行，即列 可以是一个字符串，也可以是一个具有以下属性的对象 选项:

-   **文本:** 要放置在列中的一些文本。
-   **宽度:** 列的宽度
-   **对齐:** 对齐, `right` 或 `center`。
-   **填充:** `[top, right, bottom, left]`。
-   **边界:** 是否应该在div周围放置边框？

### cliui。Span（列，列，列）

类似于 `div`，除了下一行将追加没有 一条新的线路正在创建中。

### cliui.resetOutput ()

重置当前cliui实例的UI元素，保持其值 设置 `width` 和 `wrap`。

## 常见问题

### cliui 是什么？

轻松创建复杂的多列命令行界面

### 如何安装 cliui？

在项目目录运行 npm install cliui，或使用 pnpm add / yarn add / bun add。

### cliui 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/cliui 是否存在。

### cliui 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### cliui 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=20。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### cliui 可以商用吗？

cliui 使用 ISC 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### cliui 的下载量有多少？

根据 npm 官方下载统计，cliui 在 2026/10/05 – 2026/11/03 这 30 天内被下载 1,033,751,747 次，日均约 34,458,392 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### cliui 还在维护吗？

最新版本 9\.0\.1 发布于 2025/03/17（1\.6 年前）；至今共发布 27 个版本，其中过去 12 个月发布了 0 个；首次发布于 2015/04/21。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

