# @feedzai/js-utilities 中文文档

规范地址：https://npmcn.com/package/%40feedzai/js-utilities/

版本：2\.4\.0
npm 元数据更新时间：2025-09-30T14:52:19.365Z
中文译文更新时间：2026-11-14T13:27:12.798Z
软件包许可：AGPL-3\.0-only

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

原始 npm 页面：https://www.npmjs.com/package/%40feedzai/js-utilities
原文对照：https://npmcn.com/package/%40feedzai/js-utilities/?lang=original
项目主页：https://github.com/feedzai/js-utilities
源码仓库：https://github.com/feedzai/js-utilities

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

- 包体积（解压后）：256 kB，362 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：react \>= 16\.14，react-dom \>= 16\.14
- 首次发布：2024-03-18T12:21:17.727Z
- 最新版本发布：2025-09-30T14:52:19.080Z
- 近 30 天下载量：2429（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：15（近 12 个月 0 个）

## 中文简介

网络项目常用的Javascript公用事业集合

## 安装

```sh
npm install @feedzai/js-utilities
```

也可以使用：`pnpm add @feedzai/js-utilities`、`yarn add @feedzai/js-utilities`、`bun add @feedzai/js-utilities`

## README

![](https://npmcn.com/package/%40feedzai/js-utilities/docs/static/img/logo.svg)

# @ feedzai/js- 用户

网络项目常用的Javascript公用事业集合

  

[**读取文档**](https://feedzai.github.io/js-utilities/)

* * *

[![Build Status](https://github.com/feedzai/js-utilities/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/feedzai/js-utilities/actions/workflows/main.yml) [![version](https://img.shields.io/npm/v/@feedzai/js-utilities.svg?style=flat-square)](https://www.npmjs.com/package/@feedzai/js-utilities) [![downloads](https://img.shields.io/npm/dm/@feedzai/js-utilities.svg?style=flat-square)](http://www.npmtrends.com/@feedzai/js-utilities) [![GNU AGPL License](https://img.shields.io/npm/l/@feedzai/js-utilities.svg?style=flat-square)](https://github.com/feedzai/js-utilities/blob/main/LICENSE) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com/)

## 介绍

在JavaScript和TypeScript开发的这一广阔地貌中,当构建网络项目能够带来所有变化时,拥有一套可靠的工具可供您使用. `@feedzai/js-utilities` 是JavaScript帮助器,功能和自定义回放钩子的综合集合,旨在以简单高效的方式精简项目.

有了这个软件包,开发者就可以使用一套为简化JS/TS项目中遇到的共同任务而设计的公用事业宝库。 从手动助手到自定义回放钩子,这个库可以授权开发者在不牺牲功能的情况下写出更干净,更简洁的代码.

每个函数和钩子 [测试](https://github.com/feedzai/js-utilities/tree/main/cypress/test) 确保功能和有效性,同时给予开发者信心,使其能无缝地融入项目.

它还提供了全面的文献资料,使其成为一个微风来有效导航和利用其特点.

软件包以通用JS和ES模块两种格式提供, 所以,无论是在传统环境下工作,还是接受最新的ES模块, 我们覆盖了您.

对于 JavaScript 和 TypeScript 开发者来说,寻求一个轻而易举但强健的工具包,以平衡简洁与效用, `@feedzai/js-utilities` 可能因果报应!

## 目录

-   [介绍](https://npmcn.com/package/%40feedzai/js-utilities/#readme-intro)
-   [目录](https://npmcn.com/package/%40feedzai/js-utilities/#readme-table-of-contents)
-   [安装](https://npmcn.com/package/%40feedzai/js-utilities/#readme-installation)
-   [使用量](https://npmcn.com/package/%40feedzai/js-utilities/#readme-usage)
-   [职能](https://npmcn.com/package/%40feedzai/js-utilities/#readme-functions)
    -   [管理部](https://npmcn.com/package/%40feedzai/js-utilities/#readme-dom)
    -   [随机](https://npmcn.com/package/%40feedzai/js-utilities/#readme-random)
    -   [阵列](https://npmcn.com/package/%40feedzai/js-utilities/#readme-arrays)
    -   [浏览器](https://npmcn.com/package/%40feedzai/js-utilities/#readme-browsers)
    -   [咖喱](https://npmcn.com/package/%40feedzai/js-utilities/#readme-curry)
    -   [日期](https://npmcn.com/package/%40feedzai/js-utilities/#readme-dates)
    -   [活动](https://npmcn.com/package/%40feedzai/js-utilities/#readme-events)
    -   [国际化](https://npmcn.com/package/%40feedzai/js-utilities/#readme-internationalization)
    -   [数字](https://npmcn.com/package/%40feedzai/js-utilities/#readme-numbers)
    -   [对象](https://npmcn.com/package/%40feedzai/js-utilities/#readme-objects)
    -   [字符串](https://npmcn.com/package/%40feedzai/js-utilities/#readme-string)
    -   [类型](https://npmcn.com/package/%40feedzai/js-utilities/#readme-typed)
    -   [公用事业](https://npmcn.com/package/%40feedzai/js-utilities/#readme-utilities)
-   [反应钩](https://npmcn.com/package/%40feedzai/js-utilities/#readme-react-hooks)
-   [测试](https://npmcn.com/package/%40feedzai/js-utilities/#readme-tests)
-   [其他现有解决方案](https://npmcn.com/package/%40feedzai/js-utilities/#readme-other-solutions-available)
-   [问题](https://npmcn.com/package/%40feedzai/js-utilities/#readme-issues)
    -   [QQ 错误](https://npmcn.com/package/%40feedzai/js-utilities/#readme--bugs)
    -   [QQ 特性请求](https://npmcn.com/package/%40feedzai/js-utilities/#readme--feature-requests)
-   [贡献者](https://npmcn.com/package/%40feedzai/js-utilities/#readme-contributors-)
-   [自由主义](https://npmcn.com/package/%40feedzai/js-utilities/#readme-license)

## 安装

此模块通过 [无](https://www.npmjs.com/) 与 [节点](https://nodejs.org/) 财务报告和审定财务报表 应安装为您的项目之一 `dependencies` 或者说 `devDependencies`数字 :

```sh
## using npm
npm install @feedzai/js-utilities

## using yarn
yarn add @feedzai/js-utilities

## using pnpm
pnpm add @feedzai/js-utilities
```

## 使用量

这是一套功能,公用事业和反应钩的集合. 你会发现所有可用的代码在 `src`。 。 。 .

捆绑有:

-   ES 模块
-   共同联合来文

在您的 Javascript 计划中导入一个代码

```js
// Just one function
import { isNil } from "@feedzai/js-utilities";

// Just a single module, with the full path to the file
import isNil from "@feedzai/js-utilities/dist/functions/typed/is-nil";

// Multiple functions
import { callIfExists, throwError, getLSItem } from "@feedzai/js-utilities";

// React Hooks
import { useMount, useConstant } from "@feedzai/js-utilities/hooks";

// Alias the whole object
import * as JS_UTILS from "@feedzai/js-utilities";
```

## 职能

### 管理部

| 名称 | 来源 |
| --- | --- |
| 类名 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/DOM/class-names.ts) |
| 克隆变量 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/DOM/clone-valid-element.ts) |
| 队列Microtask | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/DOM/queue-microtask.ts) |
| 切换数据属性 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/DOM/toggle-data-attribute.ts) |
| 单单 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/DOM/wait.ts) |

### 随机

| 名称 | 来源 |
| --- | --- |
| 绘图 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/random/draw.ts) |
| 随机 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/random/random.ts) |

### 阵列

| 名称 | 来源 |
| --- | --- |
| 阵列移动 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/array/array-move.ts) |
| 块 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/array/chunk.ts) |
| 查找Index 数据 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/array/find-index.ts) |
| 寻找 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/array/find.ts) |
| 平方图 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/array/flat-map.ts) |
| 平调 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/array/flatten.ts) |
| 组字 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/array/group-by.ts) |
| 范围 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/array/in-range.ts) |
| 包含 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/array/includes.ts) |
| 合并 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/array/merge.ts) |
| 删除Index | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/array/removeIndex.ts) |
| 删除项目 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/array/removeItem.ts) |
| uniqBy 键 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/array/uniq-by.ts) |
| 无效 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/array/uniq.ts) |

### 浏览器

| 名称 | 来源 |
| --- | --- |
| 浏览器 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/browsers/is-browser.ts) |
| 大卫 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/constants/is-development.ts) |

### 咖喱

| 名称 | 来源 |
| --- | --- |
| 弹跳 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/curry/debounce.ts) |
| 备忘 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/curry/memo.ts) |
| 节流阀 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/curry/throttled.ts) |

### 日期

| 名称 | 来源 |
| --- | --- |
| 获取浏览时区 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/dates/get-browser-timezone.ts) |

### 活动

| 名称 | 来源 |
| --- | --- |
| 打开 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/events/on.ts) |
| 关 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/events/off.ts) |
| 发布客户端活动 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/events/custom-events/emit-custom-event.ts) |
| 使用 CustomEvent 收听器 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/events/custom-events/use-custom-event-listener.ts) |

### 国际化

| 名称 | 来源 |
| --- | --- |
| 获取浏览器本地端 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/i18n/get-browser-locale.ts) |

### 数字

| 名称 | 来源 |
| --- | --- |
| 数量 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/number/format-number.ts) |
| 圆形 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/number/round.ts) |
| 缩短数量 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/number/shorten-number.ts) |
| 输入 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/number/to-int.ts) |

### 对象

| 名称 | 来源 |
| --- | --- |
| 时间 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/object/at.ts) |
| 克隆 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/object/clone.ts) |
| 获取值 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/object/get-value.ts) |
| 起来 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/object/get.ts) |
| 已经 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/object/has.ts) |
| 等价键 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/object/is-equal.ts) |
| 删除 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/object/omit.ts) |
| 选择 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/object/pick.ts) |
| 设定 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/object/set.ts) |

### 字符串

| 名称 | 来源 |
| --- | --- |
| 骆驼 Case | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/string/camel-case.ts) |
| 利用 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/string/capitalize.ts) |
| 脱逃RegExp | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/string/escape-reg-exp.ts) |
| kebab 案件 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/string/kebab-case.ts) |
| 马德 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/string/make-id.ts) |
| 纸杯 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/string/pascal-case.ts) |
| 可读字符串列表 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/string/readable-string-list.ts) |
| 脱光单元 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/string/strip-unit.ts) |
| 模板 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/string/template.ts) |
| 标题 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/string/title-case.ts) |
| 修饰 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/string/trim.ts) |

### 类型

| 名称 | 来源 |
| --- | --- |
| bul Or Bool 结构 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/typed/bool-or-bool-string.ts) |
| 是箭头 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/typed/is-array.ts) |
| 是蓝克 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/typed/is-blank.ts) |
| 是宝莲 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/typed/is-boolean.ts) |
| 日期 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/typed/is-date.ts) |
| 元素 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/typed/is-element.ts) |
| 时空 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/typed/is-empty.ts) |
| 函数 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/typed/is-function.ts) |
| 是无 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/typed/is-nil.ts) |
| 无效 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/typed/is-null.ts) |
| 是数 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/typed/is-number.ts) |
| 是对象 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/typed/is-object.ts) |
| 是 Plain 对象 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/typed/is-plain-object.ts) |
| 初级 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/typed/is-primitive.ts) |
| 承诺 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/typed/is-promise.ts) |
| 正弦 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/typed/is-string.ts) |
| 未定义 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/typed/is-undefined.ts) |

### 公用事业

| 名称 | 来源 |
| --- | --- |
| 调用( I) | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/utilities/call-if-exists.ts) |
| 空函数 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/utilities/empty-function.ts) |
| 可撤销 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/utilities/make-cancelable.ts) |
| 抛出错误 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/utilities/throw-error.ts) |
| HTTP 状态编码 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/constants/http-status-codes.ts) |
| 键盘密钥代码 | [来源](https://github.com/feedzai/js-utilities/blob/main/src/functions/constants/key-codes.ts) |

## 反应钩

| 名称 | 来源 |
| --- | --- |
| 使用容器查询 | [来源](https://github.com/feedzai/js-utilities/tree/main/src/hooks/use-container-query) |
| 使用控制状态 | [来源](https://github.com/feedzai/js-utilities/tree/main/src/hooks/use-controlled-state) |
| 使用网络状态 | [来源](https://github.com/feedzai/js-utilities/tree/main/src/hooks/use-network-state) |
| 图像可视性 | [来源](https://github.com/feedzai/js-utilities/tree/main/src/hooks/use-page-visibility) |
| 使用许可 | [来源](https://github.com/feedzai/js-utilities/tree/main/src/hooks/use-permission) |
| 使用自动识别 | [来源](https://github.com/feedzai/js-utilities/tree/main/src/hooks/use-auto-id.ts) |
| 使用 Click 外部 | [来源](https://github.com/feedzai/js-utilities/tree/main/src/hooks/use-click-outside.ts) |
| 持续使用 | [来源](https://github.com/feedzai/js-utilities/tree/main/src/hooks/use-constant.ts) |
| 使用 CopyToC 剪贴板 | [来源](https://github.com/feedzai/js-utilities/tree/main/src/hooks/use-copy-to-clipboard.ts) |
| 使用效果 | [来源](https://github.com/feedzai/js-utilities/tree/main/src/hooks/use-effect-once.ts) |
| 使用寿命周期 | [来源](https://github.com/feedzai/js-utilities/tree/main/src/hooks/use-lifecycle.ts) |
| 使用 Live 参考文献 | [来源](https://github.com/feedzai/js-utilities/tree/main/src/hooks/use-live-ref.ts) |
| 使用元参考 | [来源](https://github.com/feedzai/js-utilities/tree/main/src/hooks/use-merge-refs.ts) |
| 使用月球 | [来源](https://github.com/feedzai/js-utilities/tree/main/src/hooks/use-mount.ts) |
| 使用模拟状态 | [来源](https://github.com/feedzai/js-utilities/tree/main/src/hooks/use-mounted-state.ts) |
| 上一个 | [来源](https://github.com/feedzai/js-utilities/tree/main/src/hooks/use-previous.ts) |
| 安全拉尤特效应 | [来源](https://github.com/feedzai/js-utilities/tree/main/src/hooks/use-safe-layout-effect.ts) |
| 使用脚本 | [来源](https://github.com/feedzai/js-utilities/tree/main/src/hooks/use-script.ts) |

## 测试

所有测试都用cypress写成.

在当地进行测试:

```
# using npm
npm run test:open

# using npm (headless)
npm run test

# using yarn
yarn test:open

# using yarn (headless)
yarn test
```

## 其他现有解决方案

如果你知道,请 [请求拉动](http://makeapullrequest.com/) 并添加到这里!

-   [灯塔](https://github.com/FelixRilling/lightdash) - 一个小的 JavaScript 工具库,以补充lodash.
-   [拉达什](https://radash-docs.vercel.app/docs/getting-started) - Rodash的倒置替代,也写在ES模块中.
-   [你可能不需要罗塔什](https://youmightnotneed.com/lodash) 它是一个伟大的网站, 精心设计, 该项目的目标不是提供倒置的替换,而是展示如何在平版Javascript中实现相近的功能,了解事情是如何在引擎盖后工作的.

## 问题

想做贡献吗? 寻找 [好,第一个问题](https://github.com/feedzai/js-utilities/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc+label%3Aenhancement+label%3A%22good+first+issue%22) 标签. 您还需要做一个 Feedzai 优化贡献来直接为 repo 捐款 . 否则,你总是叉取回并打开合并请求.

[**见问题**](https://github.com/feedzai/js-utilities/issues)

### QQ 错误

请为错误、 缺少文档或意外行为存档 .

[**见臭虫**](https://github.com/feedzai/js-utilities/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+sort%3Acreated-desc+label%3Abug)

### QQ 特性请求

请提出一个问题来建议新的功能。 通过添加对专题请求进行表决 (单位:千美元) 这有助于维护者确定工作的优先次序.

[**参见特性请求**](https://github.com/feedzai/js-utilities/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc+label%3Aenhancement)

## 贡献者

<table><tbody><tr><td align="center"><a href="https://github.com/joaotmdias" rel="nofollow noopener noreferrer"><img alt="" height="80" src="https://avatars.githubusercontent.com/u/2223881?v=4?s=100" width="80" loading="lazy" decoding="async" referrerpolicy="no-referrer"><br><sub><b>乔·迪亚斯</b></sub></a><br><br><a href="https://github.com/feedzai/js-utilities/commits?author=joaotmdias" title="Code" rel="nofollow noopener noreferrer">💻</a></td></tr></tbody></table>

本项目遵循 [全部贡献者](https://github.com/all-contributors/all-contributors) 规格. 任何捐款都欢迎!

## 自由主义

[GNU 阿费罗通用公共许可证 v3.0](https://github.com/feedzai/js-utilities/blob/main/LICENSE)

## 常见问题

### @feedzai/js-utilities 是什么？

网络项目常用的Javascript公用事业集合

### 如何安装 @feedzai/js-utilities？

在项目目录运行 npm install @feedzai/js-utilities，或使用 pnpm add / yarn add / bun add。

### @feedzai/js-utilities 支持 TypeScript 吗？

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

### @feedzai/js-utilities 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @feedzai/js-utilities 可以商用吗？

@feedzai/js-utilities 使用 AGPL-3\.0-only 许可。最严格的 Copyleft：除分发外，通过网络向用户提供基于它的服务也需要开源对应源码。闭源 SaaS 使用前务必评估。以上为概括，不构成法律意见，请以许可原文为准。

### @feedzai/js-utilities 的下载量有多少？

根据 npm 官方下载统计，@feedzai/js-utilities 在 2026/10/15 – 2026/11/13 这 30 天内被下载 2,429 次，日均约 81 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @feedzai/js-utilities 还在维护吗？

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

