# vtils

> 一个面向业务的 JavaScript/TypeScript 实用程序库。

Latest version **4.138.0** (published 2026-04-14) · MIT license · 0 weekly downloads

## Install

```sh
npm install vtils
pnpm add vtils
yarn add vtils
bun add vtils
```

## Health

**Score 55/100 (C)** — status: active.

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 4.138.0 |
| Published | 2026-04-14 |
| First published | 2018-10-09 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 22 |
| Unpacked size | 1.2 MB |
| Known vulnerabilities | 0 (+3 in 2 direct dependencies) |
| Install scripts | no |
| Author | Jay Fong |
| Maintainers | funch |
| Keywords | util, utils, lodash |

## Links

- npm: https://www.npmjs.com/package/vtils
- Repository: https://github.com/fjc0k/vtils
- Homepage: https://github.com/fjc0k/vtils#readme
- Issues: https://github.com/fjc0k/vtils/issues
- npm.io page: https://npm.io/package/vtils

## Dependencies (22)

- [cuid](https://npm.io/package/cuid.md) ^2.1.8
- [uuid](https://npm.io/package/uuid.md) ^8.3.2
- [gcoord](https://npm.io/package/gcoord.md) ^0.3.2
- [nanoid](https://npm.io/package/nanoid.md) ^3.1.20
- [ioredis](https://npm.io/package/ioredis.md) ^4.22.0
- [date-fns](https://npm.io/package/date-fns.md) ^3.3.1
- [toposort](https://npm.io/package/toposort.md) ^2.0.2
- [benchmark](https://npm.io/package/benchmark.md) ^2.1.4
- [react-use](https://npm.io/package/react-use.md) ^17.2.1
- [cli-table3](https://npm.io/package/cli-table3.md) ^0.6.0
- [lodash-uni](https://npm.io/package/lodash-uni.md) ^1.2.0
- [tough-cookie](https://npm.io/package/tough-cookie.md) ^4.0.0
- [property-expr](https://npm.io/package/property-expr.md) ^2.0.4
- [@babel/runtime](https://npm.io/package/@babel/runtime.md) ^7.12.18
- [@types/ioredis](https://npm.io/package/@types/ioredis.md) ^4.19.4
- [fast-xml-parser](https://npm.io/package/fast-xml-parser.md) ^3.18.0
- [@types/benchmark](https://npm.io/package/@types/benchmark.md) ^2.1.0
- [decimal.js-light](https://npm.io/package/decimal.js-light.md) ^2.5.1
- [@types/tough-cookie](https://npm.io/package/@types/tough-cookie.md) ^4.0.0
- [@paralleldrive/cuid2](https://npm.io/package/@paralleldrive/cuid2.md) ^2.2.2
- [typed-query-selector](https://npm.io/package/typed-query-selector.md) ^2.6.0
- [tough-cookie-redisstore](https://npm.io/package/tough-cookie-redisstore.md) ^0.0.4

## Alternatives

- [lodash.assign](https://npm.io/package/lodash.assign.md) — 2.3M weekly downloads
- [lodash.chunk](https://npm.io/package/lodash.chunk.md) — 1.8M weekly downloads
- [react-native-ios-utilities](https://npm.io/package/react-native-ios-utilities.md) — 138.5K weekly downloads
- [@technically/lodash](https://npm.io/package/@technically/lodash.md) — 50.9K weekly downloads
- [@fluid-topics/ft-icon](https://npm.io/package/@fluid-topics/ft-icon.md) — 20.6K weekly downloads

## Recent versions

- 4.138.0 (latest) — 2026-04-14
- 4.34.3-beta.0 (next) — 2021-08-11
- 2.27.0-beta.0 (beta) — 2019-09-10
- 4.137.0 — 2026-04-13
- 4.136.0 — 2025-12-31
- 4.135.0 — 2025-12-22
- 4.134.2 — 2025-12-22
- 4.134.1 — 2025-12-21
- 4.134.0 — 2025-12-11
- 4.133.0 — 2025-12-08
- 4.132.0 — 2025-11-17
- 4.131.0 — 2025-05-16
- 4.130.1 — 2025-03-19
- 4.129.1 — 2025-02-21
- 4.129.0 — 2025-02-21
- … 531 more at https://npm.io/package/vtils/versions

## README

# vtils ![Test](https://github.com/fjc0k/vtils/workflows/Test/badge.svg?branch=master) <a href="https://fjc0k.github.io/vtils/v4-coverage/">![Coverage](https://codecov.io/gh/fjc0k/vtils/branch/master/graph/badge.svg)</a>

一个面向业务的 JavaScript/TypeScript 实用程序库。

> 文档：[https://fjc0k.github.io/vtils/v4/](https://fjc0k.github.io/vtils/v4/)
>
> 测试报告：[https://fjc0k.github.io/vtils/v4-coverage/](https://fjc0k.github.io/vtils/v4-coverage/)

```ts
import { md5 } from 'vtils'

console.log(md5('龙'))
// => 682570a229cbd3d67e76ad99b3152060
```

---

<!-- TOC depthFrom:2 -->

- [特性](#特性)
- [安装](#安装)
- [使用](#使用)
  - [在 NodeJS 中使用](#在-nodejs-中使用)
  - [在 Taro 3 中使用](#在-taro-3-中使用)
  - [在 Deno 中使用](#在-deno-中使用)
  - [自定义打包](#自定义打包)
- [许可](#许可)

<!-- /TOC -->

## 特性

- **🙅‍♀️ 拒绝重复**：基于社区优质程序库（[Lodash](https://lodash.com/)、[date-fns](https://date-fns.org/)、[react-use](https://github.com/streamich/react-use#readme)、[type-fest](https://github.com/sindresorhus/type-fest#readme)、[ts-essentials](https://github.com/krzkaczor/ts-essentials#readme)、[yup](https://github.com/jquense/yup) 等），补充常用业务代码。

- **🌸 精致优雅**：为每一个工具都添加了注释、测试，不看文档亦可直接使用。

- **🌈 面向未来**：使用 [TypeScript](https://www.typescriptlang.org/) 编写，支持 [Tree Shaking](https://webpack.js.org/guides/tree-shaking/)、[ECMAScript Modules](https://nodejs.org/api/esm.html)，也可以在 [Taro 3](https://taro.js.org/)、 [Deno](https://deno.land/) 中使用。

## 安装

```bash
# npm
npm i vtils

# yarn
yarn add vtils

# pnpm
pnpm add vtils
```

若在国内，推荐安装 [tbify](https://github.com/fjc0k/tbify#readme) 使用淘宝镜像加速：

```bash
# npm
tnpm i vtils

# yarn
tyn add vtils

# pnpm
tpm add vtils
```

## 使用

### 在 NodeJS 中使用

```ts
// 基础工具库
import { wait, isNumber, EventBus, base64Encode } from 'vtils'

// 日期时间工具库
import { formatRelative, subDays, zhCN } from 'vtils/date'

// React 工具库
import { useClassName, useToggle, useScrollLoadMore } from 'vtils/react'

// 验证工具库
import { yup } from 'vtils/validator'

// 类型工具库
import { OmitStrict, LiteralUnion, PartialDeep } from 'vtils/types'

// 小程序工具库
import { getTopBarInfo, navigatePageTo, redirectPageTo } from 'vtils/mp'
```

详细用法见文档：[https://fjc0k.github.io/vtils/v4/](https://fjc0k.github.io/vtils/v4/)。

### 在 Taro 3 中使用

在 [Taro 3](https://taro.js.org/) 中使用前需要修改 Webpack 配置，在 `config/index.js` 中的 `mini` 字段下设置：

```ts
mini: {
  webpackChain(config) {
    // 该插件会影响 resolve.extensions 的表现，删去
    config.resolve.plugins.delete('MultiPlatformPlugin')
    // 支持 .taro.js 后缀
    config.resolve.extensions.prepend('.taro.js')
  },
}
```

然后，就可以愉快地使用了：

```ts
// React 工具库
import { useSearchParam } from 'vtils/react'

// 小程序工具库
import { useTopBarInfo } from 'vtils/mp'

export default function () {
  const id = +useSearchParam('id')!
  const topBarInfo = useTopBarInfo()
  // ...
}
```

### 在 Deno 中使用

[Deno](https://deno.land/) 下暂只支持基础工具库。

```ts
// 基础工具库
import {
  wait,
  isNumber,
  EventBus,
  base64Encode,
} from 'https://cdn.skypack.dev/vtils@4.138.0'
```

### 自定义打包

你可在本地或 [https://labs.play-with-docker.com/](https://labs.play-with-docker.com/) 上运行下面的命令，然后打开 `http://localhost:9099`，接着选择你需要的工具，最后点击开始打包，等待请求执行完成后即可获取仅包含选中工具的 js 代码以及对应的类型定义。

```bash
docker run --rm -p 9099:9099 jayfong/vtils
```

## 许可

Jay Fong (c) MIT

---
_Source: https://npm.io/package/vtils · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
