Node v22导入JSON报SyntaxError: Unexpected identifier 'assert'问题解决
Node v22中JSON导入语法错误的原因与修复方案
错误原因
Node v21支持的assert { type: "json" }属于早期JSON导入提案的非标准语法,而Node v22正式跟进了ECMAScript的标准规范,移除了对该旧语法的支持,因此原本正常的代码会触发语法错误。
修复方案
方案1:使用标准的with语法替换旧断言
将原代码中的assert替换为with,采用符合当前ECMAScript标准的JSON导入写法:
import config from "./some-config-file.json" with { type: "json" };
该写法兼容Node v22及后续版本。
方案2:改用fs模块读取解析JSON(多版本兼容)
如果需要同时兼容Node v21及更早版本,可以放弃ES模块的断言语法,通过fs模块手动读取并解析JSON文件:
import fs from 'node:fs'; const config = JSON.parse(fs.readFileSync('./some-config-file.json', 'utf8'));
内容的提问来源于stack exchange,提问作者Mark Amery
相关产品推荐
相关产品推荐

