《原生JSON模块终于成为现实》

标签:#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/
 
 
Back to Top