You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JSON静态导入type声明:assert与with的兼容性问题咨询

正确的JSON导入写法(适配Webpack与浏览器)

1. Webpack环境下的最简方案

因为你用Webpack打包,完全可以移除所有类型声明,直接写:

import PRICE_LIST from '../prices/ArticlePrice.json';

Webpack在编译阶段会自动处理JSON文件,把它转成JS对象导入,这也是为什么你打包后的代码能正常运行——浏览器运行的是已经处理好的代码,根本碰不到原生导入断言的问题。

2. 原生浏览器运行的标准写法

如果你的代码需要在未打包的情况下直接在浏览器跑,现在标准的JSON导入语法是用with断言,注意语法格式:

import PRICE_LIST from '../prices/ArticlePrice.json' with { type: 'json' };

VS Code提示语法错误,是因为你的项目语法配置没跟上ES2023标准(with导入断言是ES2023新增的)。可以在tsconfig.json(用TypeScript的话)里把target设为ES2023,或者在ESLint配置里启用对应语法支持。

3. 关于assert报错的原因

assert { type: 'json' }是早期的导入断言提案,后来被官方废弃并替换成了with语法,新版Opera(基于Chromium内核)已经移除了对assert的支持,所以原生运行时会报错,但Webpack打包时会剥离这部分语法,所以打包后不受影响。

总结

  • 只需要Webpack打包场景:用最简导入写法,移除所有断言,完全不影响功能。
  • 需要支持原生浏览器运行:用with断言语法,同时更新项目语法配置消除VS Code的错误提示。

内容的提问来源于stack exchange,提问作者nhaggen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 12:12:06