# cli-truncate 中文文档

规范地址：https://npmcn.com/package/cli-truncate/

版本：6\.2\.0
npm 元数据更新时间：2026-10-31T10:12:32.266Z
中文译文更新时间：2026-11-05T16:22:33.447Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：15.5 kB，5 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：2 个
- 首次发布：2016-03-11T08:53:03.286Z
- 最新版本发布：2026-10-31T10:12:32.056Z
- 近 30 天下载量：244043424（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：19（近 12 个月 6 个）

## 中文简介

将字符串切入终端的特定宽度

## 安装

```sh
npm install cli-truncate
```

也可以使用：`pnpm add cli-truncate`、`yarn add cli-truncate`、`bun add cli-truncate`

## README

# cli- truncate 语法

> 将字符串切入终端的特定宽度

优雅地处理 [ANSI逃脱](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles)。像一个字符串样式 [`chalk`](https://github.com/chalk/chalk),它也支持Unicode代对和全宽字符.

## 安装

```sh
npm install cli-truncate
```

## 使用量

```js
import cliTruncate from 'cli-truncate';

cliTruncate('unicorn', 4);
//=> 'uni…'

// Truncate at different positions
cliTruncate('unicorn', 4, {position: 'start'});
//=> '…orn'

cliTruncate('unicorn', 4, {position: 'middle'});
//=> 'un…n'

cliTruncate('unicorns rainbow dragons', 6, {position: 'end'});
//=> 'unico…'

cliTruncate('\u001B[31municorn\u001B[39m', 4);
//=> '\u001B[31muni…\u001B[39m'

// Truncate Unicode surrogate pairs
cliTruncate('uni\uD83C\uDE00corn', 6);
//=> 'uni\uD83C\uDE00…'

// Truncate fullwidth characters
cliTruncate('안녕하세요', 3);
//=> '안…'

// Truncate the paragraph to the terminal width
const paragraph = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa.';
cliTruncate(paragraph, process.stdout.columns ?? 80);
//=> 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula…'
```

> \[注\] 切换样式文本( ANSI 逃脱) 时, 切换字符在断点继承样式 `position: 'start'` 财务报告和审定财务报表 `position: 'end'`。这不适用于 `position: 'middle'`。 。 。 .

## API 密码

### cliTruncate(文本、列、选项?)

#### 文本

类型 : `string`

文取为通.

#### 栏

类型 : `number`

航站楼内占用的柱子数量有限.

#### 选项

类型 : `object`

##### 职位

类型 : `string`  
默认 : `'end'`  
数值 : `'start' | 'middle' | 'end'`

调弦的位置 .

##### 空间

类型 : `boolean`  
默认 : `false`

在文本和椭圆之间添加一个空格.

```js
import cliTruncate from 'cli-truncate';

cliTruncate('unicorns', 5, {space: false});
//=> 'unic…'

cliTruncate('unicorns', 5, {space: true});
//=> 'uni …'

cliTruncate('unicorns', 6, {position: 'start', space: true});
//=> '… orns'

cliTruncate('unicorns', 7, {position: 'middle', space: true});
//=> 'uni … s'
```

##### 偏好空间上的 Truncation

类型 : `boolean`  
默认 : `false`

如果字符串在3个字符以内, 则从一个空白空间将字符串从实际的断点截断 .

```js
import cliTruncate from 'cli-truncate';

cliTruncate('unicorns rainbow dragons', 20, {position: 'start', preferTruncationOnSpace: true});
//=> '…rainbow dragons'

// Without preferTruncationOnSpace
cliTruncate('unicorns rainbow dragons', 20, {position: 'start'});
//=> '…rns rainbow dragons'

cliTruncate('unicorns rainbow dragons', 20, {position: 'middle', preferTruncationOnSpace: true});
//=> 'unicorns…dragons'

cliTruncate('unicorns rainbow dragons', 6, {position: 'end', preferTruncationOnSpace: true});
//=> 'unico…'

// preferTruncationOnSpace has no effect if space isn't found within 3 characters
cliTruncate('unicorns rainbow dragons', 6, {position: 'middle', preferTruncationOnSpace: true});
//=> 'uni…ns'
```

##### 切换 字符

类型 : `string`  
默认 : `…`

断点时要使用的字符 .

```js
import cliTruncate from 'cli-truncate';

cliTruncate('unicorns', 5, {position: 'end'});
//=> 'unic…'

cliTruncate('unicorns', 5, {position: 'end', truncationCharacter: '.'});
//=> 'unic.'

cliTruncate('unicorns', 5, {position: 'end', truncationCharacter: ''});
//=> 'unico'
```

## 相关

-   [围棋](https://github.com/chalk/wrap-ansi) - Word wrap a string with ANSI 逃生代码
-   [切片剂](https://github.com/chalk/slice-ansi) - 用ANSI的逃生密码切出一条绳子

## 常见问题

### cli-truncate 是什么？

将字符串切入终端的特定宽度

### 如何安装 cli-truncate？

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

### cli-truncate 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### cli-truncate 支持 ESM 还是 CommonJS？

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

### cli-truncate 需要什么版本的 Node\.js？

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

### cli-truncate 可以商用吗？

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

### cli-truncate 的下载量有多少？

根据 npm 官方下载统计，cli-truncate 在 2026/10/07 – 2026/11/05 这 30 天内被下载 244,043,424 次，日均约 8,134,781 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### cli-truncate 还在维护吗？

最新版本 6\.2\.0 发布于 2026/10/31（7 天前）；至今共发布 19 个版本，其中过去 12 个月发布了 6 个；首次发布于 2016/03/11。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

