@bybrave/json5 (英语)
维护的倒入叉 json5 ——JSON5 (JSON for humans) 解析器和字符串:注释,未引用的密钥,后缀逗号,单引用,六分音等.
自2022年以来,原版一直没有发布过(A2.2.3),同时仍然拉~800M下载/月. 这个叉子保持了解析器100%的相容性并修正了长期存在的ESM包装错误,使构建现代化,并捆绑了TypeScript类型.
npm install @bybrave/json5
const JSON5 = require('@bybrave/json5'); // CommonJS
import JSON5 from '@bybrave/json5'; // ESM (default)
import { parse, stringify } from '@bybrave/json5'; // ESM (named) — now works
与 API 相同 json5数字 : JSON5.parse(text, reviver?) 财务报告和审定财务报表 JSON5.stringify(value, replacer?, space?)。 。 。 .
已经定好了
| 问题 | 问题 | 修补 |
|---|---|---|
| #240号 | 无害环境管理的构建module 字段)仅导出 { default: {...} } cJS 导出时 { parse, stringify }。更喜欢的邦德勒斯 module (webpack) 打开 import { parse },以及 import编号 :require 形状上有分歧. | 无害环境管理的第一个来源 exports 地图 : import JSON5 from …, (中文(简体) ), import { parse, stringify } from …,以及 require(…) 所有决心 不变 形状. |
| 348号 | 请求运送真实的ES模块(树摇,无CJS-interop shim). | 来源是ES模块;CJS条目是通过这些模块生成的 require 条件. |
| 205号 | 请放下 minimist CLI依赖. | 已解决的上游( CLI 使用手卷式参数解析器); 此分叉船 零运行时间依赖关系。 。 。 . |
现代化建设
原"工具链"(rollup 0.64 + buble + core-js 2, 15 dev-dependency)被取而代之的是单机 兴建 步骤生成 CJS 条目和一个精密浏览器( UMD 风格) window.JSON5捆绑。 发展依赖降至3个(建设、打字、@types/node)。 没有运行时间依赖 .
目标节点18+. 浏览器捆绑针对ES2015(原ES5后遗症目标被抛出——2026大项的刻意选择).
额外费用(可选入)
大整数( E)bigint(中文(简体) ) ——安全范围外的整数字体在其中失去精度 JSON.parse编号 :json5。通过 { bigint: true } 让他们回到 BigInt (单位:千美元)292号其他一切不变 stringify 序列化 BigInt 回到赤裸裸的文字:
JSON5.parse('12345678901234567890'); // 12345678901234567000 (imprecise)
JSON5.parse('12345678901234567890', { bigint: true }); // 12345678901234567890n
JSON5.stringify(99999999999999999999n); // '99999999999999999999'
也可通过各种选项作为第二个论据: JSON5.parse(text, { bigint: true })。 。 。 .
孤独代孕 —— 说 stringify 现在逃出无人代理密码单位 \uXXXX 而不是释放一个读取为 U+FFFD (单位:千美元)192号),有效代用配对(emoji等)不受影响.
从 json5
替换依赖和导入——解析器和字符串符行为相同。 唯一的变化是包装: import { parse, stringify } 现在工作,和 import编号 :require 形状匹配。 如果你消耗了被腐烂的 json5/register -hook,它移动到 @bybrave/json5/register。 。 。 .
支助
如果此软件包节省了您的时间, 您可以支持维护 :
比特币( BTC): bc1q37557q5jpeaxqydzwvf3jgj7zhnfpn2td3q40q
信贷和许可证
麻省理工学院,与原作相同——见 利比里亚。 。 。 . 依据 纪事5 aseem Kishore、Jordan Tucker和撰稿人.