<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>NPM库 | 锤子前端</title><description>Now vibe coding, so learning hammer FE ?</description><link>https://channel.meo-ai.com</link><item><title>《smol-toml：小而快的 TOML 解析与序列化库》</title><link>https://channel.meo-ai.com/posts/694</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/694</guid><pubDate>Sat, 15 Aug 2026 13:16:34 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《smol-toml：小而快的 TOML 解析与序列化库》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;br /&gt;&lt;a href=&quot;/search/result?q=%23%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7&quot; title=&quot;#开发工具&quot;&gt;#开发工具&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23JavaScript&quot; title=&quot;#JavaScript&quot;&gt;#JavaScript&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23TOML&quot; title=&quot;#TOML&quot;&gt;#TOML&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23NPM&quot; title=&quot;#NPM&quot;&gt;#NPM&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96&quot; title=&quot;#性能优化&quot;&gt;#性能优化&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E9%85%8D%E7%BD%AE%E8%A7%A3%E6%9E%90&quot; title=&quot;#配置解析&quot;&gt;#配置解析&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23BigInt&quot; title=&quot;#BigInt&quot;&gt;#BigInt&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23TemporalAPI&quot; title=&quot;#TemporalAPI&quot;&gt;#TemporalAPI&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;&lt;br /&gt;smol-toml 是一款轻量、高速且遵循 TOML 1.1.0 规范的 JavaScript 解析与序列化库，目前已是 npm 上下载量最高的 TOML 解析器，被众多框架和工具在生产环境中广泛使用。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;&lt;br /&gt;1. 小而快的 TOML 解析器：smol-toml 主打&quot;小体积、高性能、正确性&quot;，在保持与 TOML v1.1.0 规范高度兼容的同时，解析和序列化速度均领先同类库，是 npm 上最受欢迎的 TOML 解析器。&lt;br /&gt;&lt;br /&gt;2. API 简洁易用：提供 &lt;code&gt;parse()&lt;/code&gt; 和 &lt;code&gt;stringify()&lt;/code&gt; 两个核心方法，用法类似 JSON 全局对象；&lt;code&gt;stringify&lt;/code&gt; 会自动忽略对象中的 &lt;code&gt;undefined&lt;/code&gt; 和 &lt;code&gt;null&lt;/code&gt; 值，但数组中的这些值会被拒绝。&lt;br /&gt;&lt;br /&gt;3. 整数与 BigInt 支持：默认情况下整数和浮点数都解析为 JavaScript Number（即浮点数），丢失类型信息且不支持超过 53 位的整数；可通过 &lt;code&gt;integersAsBigInt: true&lt;/code&gt; 选项启用 BigInt 支持，实现端到端类型保留。&lt;br /&gt;&lt;br /&gt;4. 日期时间处理灵活：使用扩展的 &lt;code&gt;Date&lt;/code&gt; 对象（&lt;code&gt;TomlDate&lt;/code&gt;）表示 TOML 的所有日期类型，支持 Offset Date Time、Local Date Time、Local Date 和 Local Time；序列化时支持 Temporal API，但时区信息会转换为偏移量。&lt;br /&gt;&lt;br /&gt;5. 性能表现亮眼：在基准测试中，smol-toml 的解析速度仅次于走捷径牺牲正确性的 fast-toml，序列化速度则全面领先；处理 5MB 大文件时，解析和序列化性能均大幅优于 &lt;a href=&quot;https://t.me/iarna&quot; target=&quot;_blank&quot; title=&quot;@iarna&quot;&gt;@iarna&lt;/a&gt;/toml、@ltd/j-toml 等主流库。&lt;br /&gt;&lt;br /&gt;6. 已知局限透明公开：由于 JavaScript 语言限制，不会拒绝无效 UTF-8 字符串和某些无效日期（如 2 月 30 日会被解析为 3 月 2 日）；具体跳过的测试项和原因在 &lt;code&gt;run-toml-test.bash&lt;/code&gt; 中有详细说明。&lt;br /&gt;&lt;br /&gt;URL：&lt;br /&gt;&lt;a href=&quot;https://github.com/squirrelchat/smol-toml&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://github.com/squirrelchat/smol-toml&quot;&gt;https://github.com/squirrelchat/smol-toml&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://github.com/squirrelchat/smol-toml&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;A small, fast, and correct TOML (1.1.0) parser and serializer - squirrelchat/smol-toml&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;GitHub&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;GitHub - squirrelchat/smol-toml: A small, fast, and correct TOML (1.1.0) parser and serializer&quot; src=&quot;/static/https://cdn4.telesco.pe/file/jWLWFohD6yEjsHg-P1P3bPwtCjQ-ZtehTWi4gjdcd7lnWksh2Qf2fafqVItY9ztbR60BVeK8sd-pkDLq7fStES8wWWXX4JXFn86Fid-fjH-94I32nxwmoifdcGOF_AcMHc6MEu2o1jDaj1LHtjRPdi9rx27ywQkjL-MQvJTm69tcIGdNT4z9mxKR9kdsZU9O8zY6dsAiBsOzBxAkyh31TomD_rpG9XCv8Pmv4RrCuyQXoTywECaV5Av5PcMaKXgesjFiO3SMSZSkeZ3pkdxzPou4k1DriAApVfkboSBRMcKMwOL53LvCSXnp3uePRMZbnYFGgvJQEar21zXqHcqG1w.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;GitHub - squirrelchat/smol-toml: A small, fast, and correct TOML (1.1.0) parser and serializer&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;A small, fast, and correct TOML (1.1.0) parser and serializer - squirrelchat/smol-toml&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>《Color.js：认真对待颜色这件事》</title><link>https://channel.meo-ai.com/posts/684</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/684</guid><pubDate>Fri, 24 Jul 2026 15:51:25 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《Color.js：认真对待颜色这件事》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;a href=&quot;/search/result?q=%23%E5%89%8D%E7%AB%AF&quot; title=&quot;#前端&quot;&gt;#前端&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Web%E5%BC%80%E5%8F%91&quot; title=&quot;#Web开发&quot;&gt;#Web开发&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23ColorJS&quot; title=&quot;#ColorJS&quot;&gt;#ColorJS&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23CSS_Color_Level_4&quot; title=&quot;#CSS_Color_Level_4&quot;&gt;#CSS_Color_Level_4&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E9%A2%9C%E8%89%B2%E7%A9%BA%E9%97%B4%E8%BD%AC%E6%8D%A2&quot; title=&quot;#颜色空间转换&quot;&gt;#颜色空间转换&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E8%89%B2%E5%9F%9F%E6%98%A0%E5%B0%84&quot; title=&quot;#色域映射&quot;&gt;#色域映射&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23DeltaE&quot; title=&quot;#DeltaE&quot;&gt;#DeltaE&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23TreeShakeable&quot; title=&quot;#TreeShakeable&quot;&gt;#TreeShakeable&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23NPM%E5%BA%93&quot; title=&quot;#NPM库&quot;&gt;#NPM库&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE&quot; title=&quot;#开源项目&quot;&gt;#开源项目&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Lea_Verou&quot; title=&quot;#Lea_Verou&quot;&gt;#Lea_Verou&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E9%A2%9C%E8%89%B2%E6%8F%92%E5%80%BC&quot; title=&quot;#颜色插值&quot;&gt;#颜色插值&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;由CSS颜色规范编辑者Lea_Verou和Chris_Lilley打造的专业颜色处理库，支持Lab/LCh、OKLab/OKLCh、Display_P3等海量颜色空间，完整兼容CSS_Color_Level_4。提供真正的色域映射、多种DeltaE色差算法和色度适应方法，API清晰易用且支持链式操作。模块化设计可tree-shake，零依赖，已被Sass、Open_Props、axe等知名项目采用，NPM累计下载超2.46亿次。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;1. 出身&quot;正规军&quot;——两位作者正是CSS颜色规范的编辑者，对颜色科学的理解刻在DNA里，不是随便写写的玩具库&lt;br /&gt;2. 颜色空间全家桶——Lab/LCh、OKLab/OKLCh、sRGB家族、Display_P3、Jzazbz、REC.2100等统统支持，转换随心所欲&lt;br /&gt;3. 科学严谨不糊弄——真正的色域映射而非粗暴裁剪，多种DeltaE色差计算和色度适应算法，专业度拉满&lt;br /&gt;4. API好用又灵活——面向对象+静态函数双模式，链式操作丝滑流畅，还能按需引入模块做tree-shake，包体积可控&lt;br /&gt;5. 业界认可度超高——浏览器用它测试CSS_Color_4/5实现，Sass、Open_Props、axe都在用，NPM下载量突破2.46亿&lt;br /&gt;6. 生态还在扩张中——除了核心库，还在孵化Color_Elements网页组件、Color_Apps工具集和Color_Palettes配色研究项目&lt;br /&gt;&lt;br /&gt;URL：&lt;a href=&quot;https://colorjs.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://colorjs.io&quot;&gt;https://colorjs.io&lt;/a&gt;</content:encoded></item><item><title>《npm 上 ESM 与 CJS 的占比变迁数据》</title><link>https://channel.meo-ai.com/posts/661</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/661</guid><pubDate>Fri, 12 Jun 2026 09:14:29 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《npm 上 ESM 与 CJS 的占比变迁数据》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;a href=&quot;/search/result?q=%23JavaScript&quot; title=&quot;#JavaScript&quot;&gt;#JavaScript&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23NodeJS&quot; title=&quot;#NodeJS&quot;&gt;#NodeJS&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23ESM&quot; title=&quot;#ESM&quot;&gt;#ESM&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23CommonJS&quot; title=&quot;#CommonJS&quot;&gt;#CommonJS&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23npm&quot; title=&quot;#npm&quot;&gt;#npm&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%A8%A1%E5%9D%97%E7%B3%BB%E7%BB%9F&quot; title=&quot;#模块系统&quot;&gt;#模块系统&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;该项目持续追踪 npm 高影响力（热门）包中 ESM、CJS、Dual（双模式）及 Faux（伪 ESM）的占比变化。数据显示，纯 ESM 包从 2021 年 8 月的 6% 增长至 2026 年 6 月的 16%；Dual 模式包增长最为迅猛（从 1.7% 到 22%），成为主流过渡方案；而纯 CJS 虽仍占最大份额（52%），但占比持续下降。2025 年底样本量骤增，反映 npm 生态整体扩张。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;1. &lt;b&gt;纯 ESM 稳步增长但尚未过半**：从 2021 年 341 个包（6.1%）增至 2026 年 2590 个（16.0%），五年增长约 2.6 倍，但仍是少数派&lt;br /&gt;2. **Dual 模式成为最大赢家**：从 95 个（1.7%）暴涨至 3574 个（22.0%），说明&quot;同时支持 ESM 和 CJS&quot;已成为库作者最务实的选择&lt;br /&gt;3. **纯 CJS 仍是主流但份额萎缩**：从 77.4% 降至 51.6%，虽然绝对数量增加，但相对占比持续被侵蚀&lt;br /&gt;4. &lt;/b&gt;&quot;伪 ESM&quot;（Faux）长期僵持**：表面用 ESM 语法但实际编译为 CJS 的包，占比一直维持在 10% 左右，说明彻底转型仍有阻力&lt;br /&gt;5. **生态规模急剧扩张**：样本包总数从 5617 个增至 16231 个，2025 年底几乎翻倍，反映 npm 整体生态的蓬勃发展&lt;br /&gt;6. **数据方法论透明**：基于 &lt;code&gt;npm-high-impact&lt;/code&gt; 热门包分析，爬取 &lt;code&gt;package.json&lt;/code&gt; 的 &lt;code&gt;latest&lt;/code&gt; 版本，约 15 分钟完成，结果以 CSV 和 SVG 可视化呈现&lt;br /&gt;&lt;br /&gt;URL：&lt;br /&gt;&lt;a href=&quot;https://github.com/wooorm/npm-esm-vs-cjs#data&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://github.com/wooorm/npm-esm-vs-cjs#data&quot;&gt;https://github.com/wooorm/npm-esm-vs-cjs#data&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://github.com/wooorm/npm-esm-vs-cjs&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Data on the share of ESM vs CJS on the public npm registry - wooorm/npm-esm-vs-cjs&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;GitHub&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;GitHub - wooorm/npm-esm-vs-cjs: Data on the share of ESM vs CJS on the public npm registry&quot; src=&quot;/static/https://cdn4.telesco.pe/file/ln-Z6zE5Y0Ce_jyrudJ2ZLEcOgnWehDyRmHuF498FWKuIoyAh_zy5m0ywaYBpBcd_CwWsKmt5BhF8zD-rg_rGFbI9O91_tNd8b4oEbUys9wyf4q8htl2vXhkKfbTHCgb9l5M5ODQFVas7koEfICxqncizeplng0qH9sz-SXRNeD9T859MdIb6jZFIVr4sUARP63e_2fxLi-H7icx1KZcfrLjuAX8cx7QxZBFtVKwBMdhRWkVpjc6lHTin4IYoDExT-8bnNHmDWZXrAd26QpKKaVNHgQJwY_FjTHjiUFeMhsh07iJSkOuEPpRZ-IPi1GMzNZ9bCA1mDRBy8DDDRtTJQ.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;GitHub - wooorm/npm-esm-vs-cjs: Data on the share of ESM vs CJS on the public npm registry&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;Data on the share of ESM vs CJS on the public npm registry - wooorm/npm-esm-vs-cjs&lt;/div&gt;
&lt;/a&gt;</content:encoded></item></channel></rss>