@aigne/uuid

中文文档
13.0.1发布于 2025/10/01MITTypeScriptESM + CJS零依赖近 30 天下载 2270

RFC9562 铀浓缩物

中文使用文档
文档目录23 节
  1. 快速启动
  2. API 总结
  3. API 密码
  4. u. 尼尔
  5. u. 马克
  6. uuid.parse( str) (中文(简体) )
  7. uuid.stringify(arr[,e
  8. uuid.v1([备选案文[、缓冲[、冲 )])
  9. uuid.v1TOV6 (uuid) (英语)
  10. uuid.v3(名称、名称空间[、缓冲[、冲 ))
  11. uuid.v4([备选案文[、缓冲[、冲 ]])
  12. uuid.v5(名称、名称空间[、缓冲[、冲 ))
  13. uuid.v6([备选案文[、缓冲[、冲 )])
  14. uuid.v6TOV1 (uuid) (英语)
  15. uuid.v7([备选案文[、缓冲[、冲 ]))
  16. uuid.v8 () (中文(简体) )
  17. uuid.validate(str) (中文(简体) )
  18. uuid.version(str) (中文(简体) )
  19. 命令行
  20. options 处理时间戳 UUID
  21. 支助
  22. 已知问题
  23. "获得RandomValues () 不支持"

乌伊德 CI Browser

为创建 RFC9562 (法语) (原为 RFC4122 导弹用户识别码

[注]

从开始 uuid@12 CommonJS不再被支持. 见 影响 财务报告和审定财务报表 动机 详细情况.

快速启动

1. 安装

npm install uuid

2. 创建UUID

import { v4 as uuidv4 } from 'uuid';

uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'

对于时间戳UUID,命名空间UUID,以及其他选项读取在.

API 总结

uuid.NIL无 UUID 字符串( 全部为零)新建于 [email protected]
uuid.MAX最大 UUID 字符串( 全部)新建于 [email protected]
uuid.parse()将 UUID 字符串转换为字节数组新建于 [email protected]
uuid.stringify()将字节数组转换为 UUID 字符串新建于 [email protected]
uuid.v1()创建版本 1( 时间戳) UUID
uuid.v1ToV6()从 1 个版本创建 6 UUID新建于 uuid@10
uuid.v3()创建版本 3( namespace w/ MD5) UUID
uuid.v4()创建版本 4 (随机) UUID
uuid.v5()创建版本 5 (namespace w/ SHA-1) UUID
uuid.v6()创建版本 6( 时间戳、 重排) UUID新建于 uuid@10
uuid.v6ToV1()从 6 个 UUID 版本创建 1 版本 UUID新建于 uuid@10
uuid.v7()创建版本 7 (Unix Epoch 时间) UUID新建于 uuid@10
uuid.v8()"故意留下空白"
uuid.validate()测试字符串看它是否为有效的 UUID新建于 [email protected]
uuid.version()检测 RFC 版本的 UUID新建于 [email protected]

API 密码

u. 尼尔

无 UUID 字符串( 全部为 0) .

示例

import { NIL as NIL_UUID } from 'uuid';

NIL_UUID; // ⇨ '00000000-0000-0000-0000-000000000000'

u. 马克

最大 UUID 字符串( 全部) .

示例

import { MAX as MAX_UUID } from 'uuid';

MAX_UUID; // ⇨ 'ffffffff-ffff-ffff-ffff-ffffffffffff'

uuid.parse( str) (中文(简体) )

将 UUID 字符串转换为字节数组

str一个有效的UUID String
返回时Uint8Array[16]
掷出TypeError 若为 str 无效的 UUID

[注] 在使用的字节数组中排列值 parse() 财务报告和审定财务报表 stringify() 遵循 UUID 字符串中十六进制的左 QQ 右序 。 如下例所显.

示例

import { parse as uuidParse } from 'uuid';

// Parse a UUID
uuidParse('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b'); // ⇨
// Uint8Array(16) [
//   110, 192, 189, 127,  17,
//   192,  67, 218, 151,  94,
//    42, 138, 217, 235, 174,
//    11
// ]

uuid.stringify(arr[,e

将字节数组转换为 UUID 字符串

arrArray- 喜欢收集16个值(从 offset0-255之间.
[offset = 0 个Number 在矩阵中开始索引
返回时String
掷出TypeError 如果无法生成有效的 UUID 字符串

[注] 在使用的字节数组中排列值 parse() 财务报告和审定财务报表 stringify() 遵循 UUID 字符串中十六进制的左 QQ 右序 。 如下例所显.

示例

import { stringify as uuidStringify } from 'uuid';

const uuidBytes = Uint8Array.of(
  0x6e,
  0xc0,
  0xbd,
  0x7f,
  0x11,
  0xc0,
  0x43,
  0xda,
  0x97,
  0x5e,
  0x2a,
  0x8a,
  0xd9,
  0xeb,
  0xae,
  0x0b
);

uuidStringify(uuidBytes); // ⇨ '6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b'

uuid.v1([备选案文[、缓冲[、冲 )])

创建 RFC 第 1 版 (时间戳) UUID

[options[ . ]Object 具有下列一个或多个属性:
[options.node = (random) [ . ]RFC "节点" 字段为 Array[6] 字节值(每 4.1.6个)
[options.clockseq = (random)[ . ]RFC "时钟序列" 作为 a Number 0 - 0x3fff之间
[options.msecs = (current time)[ . ]RFC"时间戳"字段(Number 毫秒, unix 时代)
[options.nsecs = 0[ . ]RFC"时间戳"字段(Number 纳米秒后加入 msecs,应当为0-10 000)
[options.random = (random)[ . ]Array 用于生成其它字段的 16 个随机字节( 0-255) 上方
[options.rng[ . ]备选案文 options.random页:1 Function 返回一个 Array 16个随机字节(0-255)
[buffer[ . ]Uint8Array 或者说 Uint8Array 子类型(例如:节点js) Buffer) (中文(简体) ). 如果提供了二进制 UUID, 则写入数组, 起始于 offset
[offset = 0 个Number 开始写入 UUID 字节的索引 buffer
返回时用户名 String 若无 buffer 指定,否则返回 buffer
掷出Error 如果要求超过10MUUID/秒

[注] 默认 节点编号 (UUID中的最后12位数)在进程启动时随机生成一次,然后在进程持续期间保持不变.

[注] options.random 财务报告和审定财务报表 options.rng 只有第一次呼吁才有意义 v1(),可以通过它们来初始化内部 node 财务报告和审定财务报表 clockseq 字段.

示例

import { v1 as uuidv1 } from 'uuid';

uuidv1(); // ⇨ '2c5ea4c0-4067-11e9-9b5d-ab8dfbbd4bed'

使用示例 options数字 :

import { v1 as uuidv1 } from 'uuid';

const options = {
  node: Uint8Array.of(0x01, 0x23, 0x45, 0x67, 0x89, 0xab),
  clockseq: 0x1234,
  msecs: new Date('2011-11-01').getTime(),
  nsecs: 5678,
};
uuidv1(options); // ⇨ '710b962e-041c-11e1-9234-0123456789ab'

uuid.v1TOV6 (uuid) (英语)

将1版的UUID转换为6版

import { v1ToV6 } from 'uuid';

v1ToV6('92f62d9e-22c4-11ef-97e9-325096b39f47'); // ⇨ '1ef22c49-2f62-6d9e-97e9-325096b39f47'

uuid.v3(名称、名称空间[、缓冲[、冲 ))

创建 RFC 第 3 版 (命名空间 w/ MD5) UUID

API 与 API 相同 v5(),但使用"v3"代替.

[大 根据《联邦渔业法》, "如果后向相容性不是一个问题,则首选SHA-1 [版本5]""("史记")

uuid.v4([备选案文[、缓冲[、冲 ]])

创建 RFC 版本 4 (随机) UUID

[options[ . ]Object 具有下列一个或多个属性:
[options.random[ . ]Array 16个随机字节(0-255)
[options.rng[ . ]备选案文 options.random页:1 Function 返回一个 Array 16个随机字节(0-255)
[buffer[ . ]Uint8Array 或者说 Uint8Array 子类型(例如:节点js) Buffer) (中文(简体) ). 如果提供了二进制 UUID, 则写入数组, 起始于 offset
[offset = 0 个Number 开始写入 UUID 字节的索引 buffer
返回时用户名 String 若无 buffer 指定,否则返回 buffer

示例

import { v4 as uuidv4 } from 'uuid';

uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed'

使用预定义的示例 random 值 :

import { v4 as uuidv4 } from 'uuid';

const v4options = {
  random: Uint8Array.of(
    0x10,
    0x91,
    0x56,
    0xbe,
    0xc4,
    0xfb,
    0xc1,
    0xea,
    0x71,
    0xb4,
    0xef,
    0xe1,
    0x67,
    0x1c,
    0x58,
    0x36
  ),
};
uuidv4(v4options); // ⇨ '109156be-c4fb-41ea-b1b4-efe1671c5836'

uuid.v5(名称、名称空间[、缓冲[、冲 ))

创建 RFC 版本 5( namespace w/ SHA-1) UUID

nameString | Array
namespaceString | Array[16] 命名空间 UUID
[buffer[ . ]Uint8Array 或者说 Uint8Array 子类型(例如:节点js) Buffer) (中文(简体) ). 如果提供了二进制 UUID, 则写入数组, 起始于 offset
[offset = 0 个Number 开始写入 UUID 字节的索引 buffer
返回时用户名 String 若无 buffer 指定,否则返回 buffer

[注] 皇家金融公司 DNS 财务报告和审定财务报表 URL 命名空间为 v5.DNS 财务报告和审定财务报表 v5.URL。 。 。 .

带有自定义命名空间的示例 :

import { v5 as uuidv5 } from 'uuid';

// Define a custom namespace.  Readers, create your own using something like
// https://www.uuidgenerator.net/
const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341';

uuidv5('Hello, World!', MY_NAMESPACE); // ⇨ '630eb68f-e0fa-5ecc-887a-7c7a62614681'

RFC 示例 URL 名称空间 :

import { v5 as uuidv5 } from 'uuid';

uuidv5('https://www.w3.org/', uuidv5.URL); // ⇨ 'c106a26a-21bb-5538-8bf2-57095d1976c1'

uuid.v6([备选案文[、缓冲[、冲 )])

创建 RFC 第 6 个版本( 时间戳、 重排) UUID

这种方法与uuid.v1 () 的参数相同.

import { v6 as uuidv6 } from 'uuid';

uuidv6(); // ⇨ '1e940672-c5ea-64c1-9bdd-2b0d7b3dcb6d'

使用示例 options数字 :

import { v6 as uuidv6 } from 'uuid';

const options = {
  node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],
  clockseq: 0x1234,
  msecs: new Date('2011-11-01').getTime(),
  nsecs: 5678,
};
uuidv6(options); // ⇨ '1e1041c7-10b9-662e-9234-0123456789ab'

uuid.v6TOV1 (uuid) (英语)

从第6版转换为第1版的UUID

import { v6ToV1 } from 'uuid';

v6ToV1('1ef22c49-2f62-6d9e-97e9-325096b39f47'); // ⇨ '92f62d9e-22c4-11ef-97e9-325096b39f47'

uuid.v7([备选案文[、缓冲[、冲 ]))

创建 RFC 第 7 (随机) UUID

[options[ . ]Object 具有下列一个或多个属性:
[options.msecs = (current time)[ . ]RFC"时间戳"字段(Number 毫秒, unix 时代)
[options.random = (random)[ . ]Array 用于生成其它字段的 16 个随机字节( 0-255) 上方
[options.rng[ . ]备选案文 options.random页:1 Function 返回一个 Array 16个随机字节(0-255)
[options.seq = (random)[ . ]32 位顺序 Number 0 - 0xffffff之间. 提供这种技术可以帮助确保在同一毫秒时间间隔内产生的UUID的独特性。 默认=随机值.
[buffer[ . ]Uint8Array 或者说 Uint8Array 子类型(例如:节点js) Buffer) (中文(简体) ). 如果提供了二进制 UUID, 则写入数组, 起始于 offset
[offset = 0 个Number 开始写入 UUID 字节的索引 buffer
返回时用户名 String 若无 buffer 指定,否则返回 buffer

示例

import { v7 as uuidv7 } from 'uuid';

uuidv7(); // ⇨ '01695553-c90c-745a-b76f-770d7b3dcb6d'

uuid.v8 () (中文(简体) )

"故意留下空白"

[注] 第8版(实验性)UUID为"用于试验或特定供应商的个案" .. RFC没有为他们定义一个创建算法,这就是为什么这个软件包不提供 v8() 方法。 这个 validate() 财务报告和审定财务报表 version() 然而,方法确实与这些UUID有关.

uuid.validate(str) (中文(简体) )

测试字符串看它是否为有效的 UUID

strString 用于验证
返回时true 如果字符串是有效的 UUID, false 否则

示例

import { validate as uuidValidate } from 'uuid';

uuidValidate('not a UUID'); // ⇨ false
uuidValidate('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b'); // ⇨ true

使用 validate 财务报告和审定财务报表 version 一起可以进行 per-version 验证,例如只对 v4 UUIds 进行验证.

import { version as uuidVersion } from 'uuid';
import { validate as uuidValidate } from 'uuid';

function uuidValidateV4(uuid) {
  return uuidValidate(uuid) && uuidVersion(uuid) === 4;
}

const v1Uuid = 'd9428888-122b-11e1-b85c-61cd3cbb3210';
const v4Uuid = '109156be-c4fb-41ea-b1b4-efe1671c5836';

uuidValidateV4(v4Uuid); // ⇨ true
uuidValidateV4(v1Uuid); // ⇨ false

uuid.version(str) (中文(简体) )

检测 RFC 版本的 UUID

str一个有效的UUID String
返回时Number RFC 版本的 UUID
掷出TypeError 若为 str 无效的 UUID

示例

import { version as uuidVersion } from 'uuid';

uuidVersion('45637ec4-c85f-11ea-87d0-0242ac130003'); // ⇨ 1
uuidVersion('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b'); // ⇨ 4

[注] 此方法返回 0 联 合 国 NIL UUID,以及 15 联 合 国 MAX UUID(英语:UUID).

命令行

从命令行可以使用 uuid。 。 。 .

$ npx uuid
ddeb27fb-d9a0-4624-be4d-4615062daed4

默认生成版本为4 UUIDS,然而其他版本都得到了支持. 类型 uuid --help 详细情况:

$ npx uuid --help

Usage:
  uuid
  uuid v1
  uuid v3 <name> <namespace uuid>
  uuid v4
  uuid v5 <name> <namespace uuid>
  uuid v7
  uuid --help

Note: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs
defined by RFC9562

options 处理时间戳 UUID

在此之前 uuid@11,这是可能的 options 状态,用于干扰用于确保基于时间戳的UUID的独特性的内部状态(即 v1(), (中文(简体) ), v6(),以及 v7() 方法问题。 从开始 uuid@11,这一问题已经通过使用联合国 options 参数作为在两种可能的行为之间选择的旗:

  • 无 options:利用内部状态来提高UUID的独特性.
  • 与 options: 内部状态 没有 必要时适用适当的缺省.

支助

浏览器数字 : uuid 建筑物经过测试 与最新版本的桌面 Chrome、Safari、Firefox和Edge相对应。 这些相同的浏览器的移动版本预计会有效,但目前没有经过测试.

节点数字 : uuid 建筑物经过测试 对节点( e)LTS 发布),加上一个前. 举个例子 在编写本报告时 node@20 是"维护"发行 node@24 是"当前"发行,所以 uuid 支持 node@18- 说吧node@24。 。 。 .

字体:支持过去两年内发布的TS版本. 来源

已知问题

"获得RandomValues () 不支持"

此错误发生于标准的环境 crypto.getRandomValues() API 不支持 。 可以通过增加适当的多填充来解决这一问题:

反应原生/博览会

  1. 安装 react-native-get-random-values
  2. 导入 在此之前 uuid。自 uuid 也可能是其他进口商品的过渡依赖性 进口最安全 react-native-get-random-values 作为进入点的第一件事:
import 'react-native-get-random-values';
import { v4 as uuidv4 } from 'uuid';

从 读取ME js.md 以

版本与发布记录

@aigne/uuid 共发布 2 个版本,首次发布于 2025/10/01;过去 12 个月发布了 0 个版本。

版本发布日期距今
13.0.1latest2025/10/011.1 年前
13.0.02025/10/011.1 年前

关于 @aigne/uuid 的常见问题

@aigne/uuid 是什么?

RFC9562 铀浓缩物

如何安装 @aigne/uuid?

在项目目录运行 npm install @aigne/uuid,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 uuid,可以用 npx uuid 直接运行。

@aigne/uuid 支持 TypeScript 吗?

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

@aigne/uuid 支持 ESM 还是 CommonJS?

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

@aigne/uuid 可以商用吗?

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

@aigne/uuid 的下载量有多少?

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

@aigne/uuid 还在维护吗?

最新版本 13.0.1 发布于 2025/10/01(1.1 年前);至今共发布 2 个版本,其中过去 12 个月发布了 0 个;首次发布于 2025/10/01。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。