Now vibe coding, so learning hammer FE ?
《unbash:零依赖的 Bash 解析器》
标签:
#Web开发 #NodeJs #Bash解析 #TypeScript #AST #命令行工具 #静态分析
总结:
文章要点:
1. 定位清晰:unbash 是一个用 TypeScript 编写的、零依赖的 Bash 解析器,能将 Bash 源码(命令、脚本或嵌入在其他格式中的 shell 代码)解析为带类型和源码位置的 AST,且不执行代码
2. 适用场景丰富:可用于权限审核、静态盘点脚本中的可执行文件和依赖引用、将
3. 语法支持全面:涵盖命令、控制流、管道、重定向、赋值、复合语句、参数扩展、进程替换、heredoc、算术表达式等,嵌套命令在参数、数组索引、算术表达式中仍保持结构化
4. 容错能力强:对于畸形或不完整的输入,会返回尽力而为的部分 AST,并附带带源码位置的错误信息,适合处理编辑器输入或用户粘贴内容
5. 性能碾压对手:在多个基准测试中,解析吞吐量远超 tree-sitter-bash(约 717 倍)、sh-syntax(约 92870 倍)和 bash-parser(约 275291 倍),包体积仅 80KB 压缩后 19KB
6. 与竞品差异化明显:相比 tree-sitter-bash 提供的是可执行语法的类型化 AST 而非 CST;相比 sh-syntax 无需 WASM 且 API 更轻量;相比 bash-parser 支持更多 Bash 特性(如
7. 与 shellcheck 的互补关系:unbash 专注于"解析结构",不做语义分析;以下场景推荐用 shellcheck 而非 unbash:
- 检查变量是否已定义或是否被引用(如未引用变量
- 检测命令是否存在及其参数合法性(如
- 识别常见陷阱和反模式(如
- 检查权限相关风险(如
- 提供可操作的修复建议(shellcheck 会直接给出 SC 规则编号和修复方案)
- 对脚本进行全面的最佳实践审查(POSIX 兼容性、可移植性建议等)
URL:https://github.com/webpro-nl/unbash
标签:
#Web开发 #NodeJs #Bash解析 #TypeScript #AST #命令行工具 #静态分析
总结:
文章要点:
1. 定位清晰:unbash 是一个用 TypeScript 编写的、零依赖的 Bash 解析器,能将 Bash 源码(命令、脚本或嵌入在其他格式中的 shell 代码)解析为带类型和源码位置的 AST,且不执行代码
2. 适用场景丰富:可用于权限审核、静态盘点脚本中的可执行文件和依赖引用、将
curl 等命令结构化导入、为粘贴的 Bash 代码附加诊断信息、构建可视化解释、以及安全地查找和迁移命令调用3. 语法支持全面:涵盖命令、控制流、管道、重定向、赋值、复合语句、参数扩展、进程替换、heredoc、算术表达式等,嵌套命令在参数、数组索引、算术表达式中仍保持结构化
4. 容错能力强:对于畸形或不完整的输入,会返回尽力而为的部分 AST,并附带带源码位置的错误信息,适合处理编辑器输入或用户粘贴内容
5. 性能碾压对手:在多个基准测试中,解析吞吐量远超 tree-sitter-bash(约 717 倍)、sh-syntax(约 92870 倍)和 bash-parser(约 275291 倍),包体积仅 80KB 压缩后 19KB
6. 与竞品差异化明显:相比 tree-sitter-bash 提供的是可执行语法的类型化 AST 而非 CST;相比 sh-syntax 无需 WASM 且 API 更轻量;相比 bash-parser 支持更多 Bash 特性(如
[[ ]]、(( ))、herestrings、process substitution 等)且具备错误恢复能力7. 与 shellcheck 的互补关系:unbash 专注于"解析结构",不做语义分析;以下场景推荐用 shellcheck 而非 unbash:
- 检查变量是否已定义或是否被引用(如未引用变量
$var 可能引发 word splitting)- 检测命令是否存在及其参数合法性(如
git --不存在的参数 语法正确但运行会报错)- 识别常见陷阱和反模式(如
cat file | grep pattern 可简化为 grep pattern file)- 检查权限相关风险(如
rm -rf /$undefined_var 的潜在危险)- 提供可操作的修复建议(shellcheck 会直接给出 SC 规则编号和修复方案)
- 对脚本进行全面的最佳实践审查(POSIX 兼容性、可移植性建议等)
URL:https://github.com/webpro-nl/unbash
《前端框架基准测试平台》
标签:#前端 #Web开发 #FrameworkBenchmarks #PerformanceTesting #JavaScriptFrameworks #React #Vue #Svelte #SolidJS #Preact #Qwik #Lit #Angular #BundleSize #BuildTime #LighthouseScores #HMR #NPMStats #StackMatch
总结:
这是一个全自动化的前端框架基准测试平台,由开发者Alicia Sykes维护。项目用同一个天气应用在React、Vue、Svelte等12+个主流框架中实现,每晚自动跑分对比包体积、Lighthouse评分、加载速度、CPU内存占用、构建时间及HMR热更新速度。还整合了GitHub和NPM社区数据,并自带Stack Match智能推荐工具。所有原始数据开源可下载,帮你告别选型纠结!
文章要点:
1. 同一个天气应用,12+种框架实现——React、Vue、Svelte、Solid.js、Qwik、Lit等主流选手全部到场,公平对决
2. 每晚自动跑分,数据新鲜出炉——包体积、Lighthouse性能分、FCP/LCP/TTI加载指标、CPU内存占用、构建时间、HMR速度全覆盖
3. 社区数据一目了然——GitHub Stars、NPM月下载量、依赖数量、维护者人数、TS支持情况、许可证信息全整理好了
4. 自带Stack Match智能推荐工具——填填项目偏好,就能get最适合你的框架,选型不再拍脑袋
5. 完全开源透明——所有原始数据以JSON格式开放下载,测试用Playwright统一验证,结果可信可复现
URL:[https://framework-benchmarks.as93.net/](https://framework-benchmarks.as93.net/)
标签:#前端 #Web开发 #FrameworkBenchmarks #PerformanceTesting #JavaScriptFrameworks #React #Vue #Svelte #SolidJS #Preact #Qwik #Lit #Angular #BundleSize #BuildTime #LighthouseScores #HMR #NPMStats #StackMatch
总结:
这是一个全自动化的前端框架基准测试平台,由开发者Alicia Sykes维护。项目用同一个天气应用在React、Vue、Svelte等12+个主流框架中实现,每晚自动跑分对比包体积、Lighthouse评分、加载速度、CPU内存占用、构建时间及HMR热更新速度。还整合了GitHub和NPM社区数据,并自带Stack Match智能推荐工具。所有原始数据开源可下载,帮你告别选型纠结!
文章要点:
1. 同一个天气应用,12+种框架实现——React、Vue、Svelte、Solid.js、Qwik、Lit等主流选手全部到场,公平对决
2. 每晚自动跑分,数据新鲜出炉——包体积、Lighthouse性能分、FCP/LCP/TTI加载指标、CPU内存占用、构建时间、HMR速度全覆盖
3. 社区数据一目了然——GitHub Stars、NPM月下载量、依赖数量、维护者人数、TS支持情况、许可证信息全整理好了
4. 自带Stack Match智能推荐工具——填填项目偏好,就能get最适合你的框架,选型不再拍脑袋
5. 完全开源透明——所有原始数据以JSON格式开放下载,测试用Playwright统一验证,结果可信可复现
URL:[https://framework-benchmarks.as93.net/](https://framework-benchmarks.as93.net/)
《200毫秒:一次HTTP请求的完整旅程》
标签:#后端 #NodeJS #网络协议 #TCP #TLS #DNS #HTTP #Postgres #Linux内核 #Web性能
总结:
这是一个交互式可视化网站,以旧金山咖啡店一次点击购买为起点,逐帧追踪HTTP请求在211.4毫秒内穿越北美大陆的完整生命周期。从触摸板电容变化到屏幕像素刷新,文章以精确的时间轴拆解了硬件中断、浏览器事件循环、DNS解析、TCP/TLS握手、内核网络栈、Node.js事件循环、Postgres事务提交、光纤传输、Wi-Fi重传、GPU渲染等每个环节,揭示了"冷启动"请求中60%时间消耗在握手、35%在传输、而服务器实际计算仅占1.4%的惊人事实。
文章要点:
1. 一次点击触发7层软件栈(触摸板→HID→窗口服务器→Chrome→渲染器→JavaScript→fetch)才发出第一个字节,而电容变化到网络请求离开仅需5毫秒
2. DNS查询通过UDP在2毫秒内完成,依赖Anycast路由将请求导向最近的解析器;TLS 1.3将握手从2个RTT压缩到1个,但仍需127毫秒建立加密隧道
3. 4,700公里光纤需6次穿越大陆,每次31毫秒;Wi-Fi碰撞重传仅需1.2毫秒,却足以容纳整个Postgres查询往返(0.35毫秒)
4. 服务器端50微秒内完成从网卡DMA→NAPI轮询→TCP重组→epoll唤醒→Node.js读取→TLS解密→HTTP解析→路由到handler的全流程
5. Postgres通过连接池、预编译语句和WAL组提交将INSERT优化至2.1毫秒,fsync强制刷盘是唯一的同步阻塞点
6. 响应返回后,Chrome还需经历kqueue唤醒、TLS解密、React重渲染、样式计算、布局、绘制、合成,最终等待4.4毫秒VSync才显示"Order confirmed"
7. 第二次"热请求"可复用TCP连接和TLS会话票证,将耗时从211毫秒降至约95毫秒,节省的116毫秒全是首次建立的连接成本
URL:https://200ms.thenodebook.com/
标签:#后端 #NodeJS #网络协议 #TCP #TLS #DNS #HTTP #Postgres #Linux内核 #Web性能
总结:
这是一个交互式可视化网站,以旧金山咖啡店一次点击购买为起点,逐帧追踪HTTP请求在211.4毫秒内穿越北美大陆的完整生命周期。从触摸板电容变化到屏幕像素刷新,文章以精确的时间轴拆解了硬件中断、浏览器事件循环、DNS解析、TCP/TLS握手、内核网络栈、Node.js事件循环、Postgres事务提交、光纤传输、Wi-Fi重传、GPU渲染等每个环节,揭示了"冷启动"请求中60%时间消耗在握手、35%在传输、而服务器实际计算仅占1.4%的惊人事实。
文章要点:
1. 一次点击触发7层软件栈(触摸板→HID→窗口服务器→Chrome→渲染器→JavaScript→fetch)才发出第一个字节,而电容变化到网络请求离开仅需5毫秒
2. DNS查询通过UDP在2毫秒内完成,依赖Anycast路由将请求导向最近的解析器;TLS 1.3将握手从2个RTT压缩到1个,但仍需127毫秒建立加密隧道
3. 4,700公里光纤需6次穿越大陆,每次31毫秒;Wi-Fi碰撞重传仅需1.2毫秒,却足以容纳整个Postgres查询往返(0.35毫秒)
4. 服务器端50微秒内完成从网卡DMA→NAPI轮询→TCP重组→epoll唤醒→Node.js读取→TLS解密→HTTP解析→路由到handler的全流程
5. Postgres通过连接池、预编译语句和WAL组提交将INSERT优化至2.1毫秒,fsync强制刷盘是唯一的同步阻塞点
6. 响应返回后,Chrome还需经历kqueue唤醒、TLS解密、React重渲染、样式计算、布局、绘制、合成,最终等待4.4毫秒VSync才显示"Order confirmed"
7. 第二次"热请求"可复用TCP连接和TLS会话票证,将耗时从211毫秒降至约95毫秒,节省的116毫秒全是首次建立的连接成本
URL:https://200ms.thenodebook.com/
《为什么我放弃Next.js和RSC,回归传统SPA与独立后端》
标签:#前端 #Web开发 #React #NextJS #React_Server_Components #SPA #架构设计 #安全 #TanStack #Hono
总结:
作者回顾了自己从Next.js忠实用户到拥抱App Router/RSC,最终回归传统SPA+独立后端的完整历程。文章深入分析了RSC架构带来的心智负担、序列化开销和安全风险,结合2025-2026年多起严重CVE漏洞,论证了将渲染框架与安全边界解耦的必要性,并分享了当前基于React Router+Vite+Hono的简洁技术栈。
文章要点:
1. Next.js的黄金时代:Pages Router时期心智模型清晰,服务端/客户端边界一目了然,文件路由简单易懂,部署零成本
2. App Router带来的混乱:Server/Client Component区分成为负担,"use client"指令传染性强,开发/构建/生产环境缓存行为不一致,服务端客户端边界变得不可见
3. 安全漏洞敲响警钟:2025年CVE-2025-29927中间件绕过(CVSS 9.1)、2025年底RSC核心包10分满分漏洞CVE-2025-55182、2026年初多起Server Function DoS漏洞,攻击面集中在服务端渲染和反序列化环节
4. TanStack并非避风港:2026年5月TanStack遭遇供应链攻击,42个包被投毒,说明换框架不能免疫风险,减少依赖面才是关键
5. 序列化是根本原因:RSC的"无缝"本质是分布式系统的序列化问题,函数、类实例、错误栈都无法透明穿越边界,反序列化不可信输入成为高危攻击面
6. 当前架构选择:React Router框架模式+Vite纯SPA(仅营销页预渲染)+ Hono独立后端,API通过显式HTTP调用,无RSC负载,无服务端序列化
7. 安全设计原则:认证授权在API层强制执行,前端中间件只做UX跳转,CORS/CSRF/验证码/限流全部在可控的后端实现,与渲染框架彻底解耦
8. 核心收获:架构清晰可指认、无序列化税、前端攻击面趋近于零、后端语言自由选型、依赖更少爆炸半径更小——"无聊"在软件工程里是赞美
URL:https://dev.to/zulikram/why-i-walked-back-from-nextjs-and-rsc-to-a-plain-spa-and-a-separate-backend-4k8p
标签:#前端 #Web开发 #React #NextJS #React_Server_Components #SPA #架构设计 #安全 #TanStack #Hono
总结:
作者回顾了自己从Next.js忠实用户到拥抱App Router/RSC,最终回归传统SPA+独立后端的完整历程。文章深入分析了RSC架构带来的心智负担、序列化开销和安全风险,结合2025-2026年多起严重CVE漏洞,论证了将渲染框架与安全边界解耦的必要性,并分享了当前基于React Router+Vite+Hono的简洁技术栈。
文章要点:
1. Next.js的黄金时代:Pages Router时期心智模型清晰,服务端/客户端边界一目了然,文件路由简单易懂,部署零成本
2. App Router带来的混乱:Server/Client Component区分成为负担,"use client"指令传染性强,开发/构建/生产环境缓存行为不一致,服务端客户端边界变得不可见
3. 安全漏洞敲响警钟:2025年CVE-2025-29927中间件绕过(CVSS 9.1)、2025年底RSC核心包10分满分漏洞CVE-2025-55182、2026年初多起Server Function DoS漏洞,攻击面集中在服务端渲染和反序列化环节
4. TanStack并非避风港:2026年5月TanStack遭遇供应链攻击,42个包被投毒,说明换框架不能免疫风险,减少依赖面才是关键
5. 序列化是根本原因:RSC的"无缝"本质是分布式系统的序列化问题,函数、类实例、错误栈都无法透明穿越边界,反序列化不可信输入成为高危攻击面
6. 当前架构选择:React Router框架模式+Vite纯SPA(仅营销页预渲染)+ Hono独立后端,API通过显式HTTP调用,无RSC负载,无服务端序列化
7. 安全设计原则:认证授权在API层强制执行,前端中间件只做UX跳转,CORS/CSRF/验证码/限流全部在可控的后端实现,与渲染框架彻底解耦
8. 核心收获:架构清晰可指认、无序列化税、前端攻击面趋近于零、后端语言自由选型、依赖更少爆炸半径更小——"无聊"在软件工程里是赞美
URL:https://dev.to/zulikram/why-i-walked-back-from-nextjs-and-rsc-to-a-plain-spa-and-a-separate-backend-4k8p
《别在 div 和 span 上乱加 aria-label》
标签:#前端 #Web无障碍 #ARIA #屏幕阅读器 #HTML语义化
总结:
本文通过实测数据揭示了在 div、span 等 generic 角色元素上使用 aria-label 的严重兼容性问题。ARIA 规范明确禁止为 generic 角色命名,而各屏幕阅读器的表现更是天差地别——有的只读标签、有的只读内容、有的两者都读、有的干脆忽略。这种不一致会让依赖辅助技术的用户获得错误信息,属于典型的"好心办坏事"。作者指出 section 和 popover 是例外,前者加标签会自动升级为 region 地标,后者角色会变为 group。
文章要点:
1. ARIA 规范 5.2.8.6 明确把 generic 角色列入"禁止命名"清单,div 和 span 默认就是这个角色
2. 实测 8 组屏幕阅读器+浏览器组合,对带 aria-label 的 div announcement 结果五花八门:VoiceOver 读"News, group"、TalkBack 只读"News"、JAWS/NVDA 完全忽略标签只读内容
3. 空 div 的测试结果更混乱,有的读"News, empty group"、有的完全静默,无法预测用户会听到什么
4. 这种不可预测性对屏幕阅读器用户是灾难性的——你以为在帮忙标注,实际上可能覆盖了真正有用的内容
5. 例外情况:section 元素加 aria-label 会自动从 generic 升级为 region 地标,这是规范允许的;带 popover 属性的 div 角色会变为 group,加标签也合法
6. 正确做法:需要可访问名称时,优先使用语义化标签(如 button、nav)或显式设置 role,而不是在裸 div 上硬塞 aria-label
URL:https://www.matuzo.at/blog/2026/aria-label-generic-elements
标签:#前端 #Web无障碍 #ARIA #屏幕阅读器 #HTML语义化
总结:
本文通过实测数据揭示了在 div、span 等 generic 角色元素上使用 aria-label 的严重兼容性问题。ARIA 规范明确禁止为 generic 角色命名,而各屏幕阅读器的表现更是天差地别——有的只读标签、有的只读内容、有的两者都读、有的干脆忽略。这种不一致会让依赖辅助技术的用户获得错误信息,属于典型的"好心办坏事"。作者指出 section 和 popover 是例外,前者加标签会自动升级为 region 地标,后者角色会变为 group。
文章要点:
1. ARIA 规范 5.2.8.6 明确把 generic 角色列入"禁止命名"清单,div 和 span 默认就是这个角色
2. 实测 8 组屏幕阅读器+浏览器组合,对带 aria-label 的 div announcement 结果五花八门:VoiceOver 读"News, group"、TalkBack 只读"News"、JAWS/NVDA 完全忽略标签只读内容
3. 空 div 的测试结果更混乱,有的读"News, empty group"、有的完全静默,无法预测用户会听到什么
4. 这种不可预测性对屏幕阅读器用户是灾难性的——你以为在帮忙标注,实际上可能覆盖了真正有用的内容
5. 例外情况:section 元素加 aria-label 会自动从 generic 升级为 region 地标,这是规范允许的;带 popover 属性的 div 角色会变为 group,加标签也合法
6. 正确做法:需要可访问名称时,优先使用语义化标签(如 button、nav)或显式设置 role,而不是在裸 div 上硬塞 aria-label
URL:https://www.matuzo.at/blog/2026/aria-label-generic-elements
《设计高性能表单:5个基于研究的UX原则》
标签:#UX设计 #表单设计 #前端开发 #Web可用性 #交互设计 #用户研究
总结:
本文基于Baymard Institute等权威机构的可用性研究,提出了5个提升表单性能的核心UX原则:精简字段数量、采用单列布局、明确标注必填与选填字段、实施正确的即时验证时机,以及优化移动端输入体验。这些原则能有效降低用户放弃率(约26%用户因表单复杂而放弃),提升完成效率与满意度,是构建高转化率表单的设计基石。
文章要点:
- 精简字段数量:平均电商结账流程包含11.3个字段,但高性能网站仅需6-8个即可完成交易。多余的字段会增加认知负担,约26%的用户因表单复杂而放弃购买。建议移除或折叠可选字段,除非确有必要
- 单列布局更友好:多列布局在静态设计稿中看起来美观,但可用性测试表明用户容易误读字段顺序。人眼不会自然地"之字形"扫描多列表单,单列布局提升可读性,支持自然阅读习惯,在桌面和移动端都表现可靠
- 明确标注必填与选填字段:不要假设用户能推断哪些字段是必填的。研究显示,近三分之一用户在仅标注选填字段时会遗漏必填项。可靠的做法是统一标注所有字段状态("必填"或"选填"),标签应紧邻字段标签放置
- 即时验证的时机很重要:正确实施的即时验证可提升表单成功率约22%,缩短完成时间40%以上,提高用户满意度30%以上。但不要在每输入一个字符时就验证(会增加认知负荷),建议在失焦时或字段完成后验证。错误提示应具体说明问题及修正方法,验证指示器应紧邻字段显示
- 优化移动端输入体验:避免将电话号码等输入拆分为多个字段,这会提高错误率和完成时间。确保触发合适的键盘类型(数字键盘用于卡号、邮箱键盘用于邮箱输入)。启用自动填充功能,Google研究显示这可减少30%以上的完成时间。允许粘贴完整值,不要阻止粘贴操作
文章URL:
https://designmybit.com/designing-high-performance-forms-5-research-backed-ux-principles/
标签:#UX设计 #表单设计 #前端开发 #Web可用性 #交互设计 #用户研究
总结:
本文基于Baymard Institute等权威机构的可用性研究,提出了5个提升表单性能的核心UX原则:精简字段数量、采用单列布局、明确标注必填与选填字段、实施正确的即时验证时机,以及优化移动端输入体验。这些原则能有效降低用户放弃率(约26%用户因表单复杂而放弃),提升完成效率与满意度,是构建高转化率表单的设计基石。
文章要点:
- 精简字段数量:平均电商结账流程包含11.3个字段,但高性能网站仅需6-8个即可完成交易。多余的字段会增加认知负担,约26%的用户因表单复杂而放弃购买。建议移除或折叠可选字段,除非确有必要
- 单列布局更友好:多列布局在静态设计稿中看起来美观,但可用性测试表明用户容易误读字段顺序。人眼不会自然地"之字形"扫描多列表单,单列布局提升可读性,支持自然阅读习惯,在桌面和移动端都表现可靠
- 明确标注必填与选填字段:不要假设用户能推断哪些字段是必填的。研究显示,近三分之一用户在仅标注选填字段时会遗漏必填项。可靠的做法是统一标注所有字段状态("必填"或"选填"),标签应紧邻字段标签放置
- 即时验证的时机很重要:正确实施的即时验证可提升表单成功率约22%,缩短完成时间40%以上,提高用户满意度30%以上。但不要在每输入一个字符时就验证(会增加认知负荷),建议在失焦时或字段完成后验证。错误提示应具体说明问题及修正方法,验证指示器应紧邻字段显示
- 优化移动端输入体验:避免将电话号码等输入拆分为多个字段,这会提高错误率和完成时间。确保触发合适的键盘类型(数字键盘用于卡号、邮箱键盘用于邮箱输入)。启用自动填充功能,Google研究显示这可减少30%以上的完成时间。允许粘贴完整值,不要阻止粘贴操作
文章URL:
https://designmybit.com/designing-high-performance-forms-5-research-backed-ux-principles/
《原生JSON模块终于成为现实》
标签:#JavaScript #ESModules #JSON #Web标准
总结:本文介绍了JavaScript平台原生支持JSON模块导入的新特性。通过使用
文章要点:
- 使用
- 动态导入同样支持:
- 导入的JSON会被解析一次并缓存,多次导入返回同一对象实例(
- 浏览器仍需服务器返回
- 与打包工具方案对比:原生方案在运行时获取文件,而打包工具通常在构建时内联JSON
- 此特性不仅限于JSON,已扩展支持CSS模块脚本(
- 现代浏览器、Node.js、Deno、Bun均已支持该特性,但打包工具在代码分割、资源哈希等方面仍有价值
文章URL:https://allthingssmitty.com/2026/03/16/native-json-modules-are-finally-real/
标签:#JavaScript #ESModules #JSON #Web标准
总结:本文介绍了JavaScript平台原生支持JSON模块导入的新特性。通过使用
import attributes语法with { type: "json" },开发者现在可以在浏览器、Node.js、Deno和Bun中直接导入JSON文件,无需构建工具转换。这标志着从构建时模拟到运行时原生支持的转变,使模块系统更加显式和可扩展。文章要点:
- 使用
import config from "./config.json" with { type: "json" }语法实现原生JSON导入,替代了以往需要打包工具转换的方式- 动态导入同样支持:
await import("./config.json", { with: { type: "json" } })- 导入的JSON会被解析一次并缓存,多次导入返回同一对象实例(
a === b为true)- 浏览器仍需服务器返回
Content-Type: application/json,并遵循CORS规则- 与打包工具方案对比:原生方案在运行时获取文件,而打包工具通常在构建时内联JSON
- 此特性不仅限于JSON,已扩展支持CSS模块脚本(
with { type: "css" }),为未来其他结构化模块类型建立模式- 现代浏览器、Node.js、Deno、Bun均已支持该特性,但打包工具在代码分割、资源哈希等方面仍有价值
文章URL:https://allthingssmitty.com/2026/03/16/native-json-modules-are-finally-real/