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

Node.js配置Babel启用import assertions仍报错如何解决

Node.js 环境 import assertions 导入JSON报错排查方案

这个问题是Babel配置+运行链路不匹配导致的高频问题,按以下顺序逐一排查即可解决:

  • 确认插件依赖已实际安装
    绝大多数配置写完不生效的核心原因是只加了配置项,没安装对应npm包。在项目根目录执行安装命令:
    npm install @babel/plugin-syntax-import-assertions --save-dev
    安装完成后检查node_modules/@babel目录下是否存在对应插件文件夹,排除npm缓存、网络波动导致的假安装问题。
  • 排查Babel配置文件的生效范围
    .babelrc是项目级局部配置,默认只对所在目录及其子目录的文件生效,如果你的执行入口文件在.babelrc的上级目录、或者项目是monorepo多包结构,很容易出现配置不被加载的问题。可以直接在项目根目录创建全局配置文件babel.config.json,内容和原有配置保持一致,替代.babelrc排除路径匹配问题:
    {
      "plugins": [
        "@babel/plugin-syntax-import-assertions"
      ]
    }
    
  • 确认代码运行时确实经过Babel转译
    如果你直接用原生node 入口文件.js命令启动代码,Babel配置完全不会生效——Babel不会自动接管Node.js的原生模块加载逻辑。这种情况二选一处理即可:
    1. 走Node.js原生支持:Node.js 17.1及以上稳定版本原生支持import assertions语法,先确认项目package.json中已添加"type": "module"声明ES模块环境,16.x版本启动时追加--experimental-json-modules参数即可,18+版本不需要额外启动参数。
    2. 走Babel转译链路:用@babel/node替代原生node命令启动代码,执行npx babel-node 入口文件.js,确保转译流程实际运行。
  • 检查Babel生态依赖版本一致性
    如果项目中@babel/core版本低于7.14,会和新版import assertions插件存在兼容问题。执行npm ls @babel/core查看核心包版本,所有@babel/开头的依赖建议统一升级到最新稳定大版本,避免跨版本兼容问题:
    npm install @babel/core @babel/cli @babel/node @babel/preset-env --save-dev
  • 排除其他编译工具的冲突
    如果项目同时配置了TypeScript、esbuild、swc、脚手架内置编译逻辑(比如CRA、Umi等框架自带的编译链路),这类工具默认不识别import assertions语法,会抢在Babel之前解析文件抛出解析错误。比如使用ts-node运行时需要单独开启对应语法支持,使用脚手架时需要通过框架提供的配置修改入口改写内置Babel配置,根目录直接写.babelrc会被框架默认忽略。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:27:18