@arcjet/sprintf

中文文档
1.15.0发布于 2026/10/29Apache-2.0TypeScriptES Module零依赖构建来源已验证近 30 天下载 33.8万

Arcjet 平台独立替换 ulil.format

中文使用文档
文档目录8 节
  1. 这是什么?
  2. 我什么时候用这个?
  3. 安装
  4. 使用
  5. API 密码
  6. sprintf(template, …values)
  7. 替换
  8. 许可证
Arcjet Logo

@arcjet/sprintf

npm badge

弧喷 平台独立替换 unil.format (中文(简体) )。 。 。 .

这个软件包是平台独立的,目的是支持不同环境下的多个运行时间,例如Edge Runtime,Node.js,Bun,Deno,和Cloudflare Workers.

这是什么?

这是帮助我们格式化日志消息的内部工具 . 这是叉子 pinojs/quick-format-unescaped。 。 。 . 我们选择了叉子 这样我们才能尽可能保持兼容性 更严格.

我什么时候用这个?

你不应该用这个,而是用 pinojs/quick-format-unescaped 或其中一个 替代. 这个套装符合我们目前的需要 可能与你的不同.

安装

这套方案只是无害环境管理. 在 Node.js 用 npm 安装 :

npm install @arcjet/sprintf

使用

import { sprintf } from "@arcjet/sprintf";

console.log(sprintf("Hello %s", "world")); // => "Hello world"
console.log(sprintf("1 %i %d", 2, 3.0)); // => "1 2 3"

API 密码

此软件包导出标识符 sprintf。 。 。 . 默认导出也是 sprintf。 。 。 .

此套件导出否 类型脚本 类型.

sprintf(template, …values)

以提供的值替换占位符,从而格式化字符串。 见 替换 下面是支持的占位符类型.

参数
  • template (单位:千美元)string(中文(简体) ) ——带有占位符的格式字符串
  • values (单位:千美元)Array<unknown>(中文(简体) ) ——要插入模板的值
回返

格式化的字符串( E)string) (中文(简体) ).

替换

如果匹配, 将替换以下字符序列 参数符合该类型。 譬如说, "%d" 将只替换为 a 数字,而不是字符串或对象.

对象替换支持任何非值 undefined。 。 。 .

  • %d | %f - 如果提供数字,取而代之.
  • %i - 如果在后面提供数字,则改为: Math.floor 它被召唤.
  • %O | %o | %j - 改为: JSON.stringify 它被召唤。 循环引用的对象为: 替换为 [Circular]。函数将被替换为函数名 或者说 <anonymous> 若无名.
  • %s - 如果提供字符串,则替换.
  • %% - 取而代之的是文字 % 字符键.

许可证

Apache 许可证,2.0版本 © Arcjet实验室股份有限公司.

基于 quick-format-unescaped 特许使用 麻省理工学院 大卫・马克・克莱门特. 我们的工作更严格,同时保持同样的兼容性 也许吧.

版本与发布记录

@arcjet/sprintf 共发布 65 个版本,首次发布于 2024/06/11;过去 12 个月发布了 30 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.15.0latest2026/10/298 天前
1.14.12026/10/0730 天前
1.14.02026/10/021 个月前
1.13.02026/09/171 个月前
1.12.02026/09/091 个月前
1.11.02026/08/272 个月前

其他发布通道:rc → 1.10.0-rc.1。

关于 @arcjet/sprintf 的常见问题

@arcjet/sprintf 是什么?

Arcjet 平台独立替换 ulil.format

如何安装 @arcjet/sprintf?

在项目目录运行 npm install @arcjet/sprintf,或使用 pnpm add / yarn add / bun add。

@arcjet/sprintf 支持 TypeScript 吗?

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

@arcjet/sprintf 支持 ESM 还是 CommonJS?

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

@arcjet/sprintf 需要什么版本的 Node.js?

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

@arcjet/sprintf 可以商用吗?

@arcjet/sprintf 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@arcjet/sprintf 的下载量有多少?

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

@arcjet/sprintf 还在维护吗?

最新版本 1.15.0 发布于 2026/10/29(8 天前);至今共发布 65 个版本,其中过去 12 个月发布了 30 个;首次发布于 2024/06/11。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。