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

webpack5无法导入.json文件 配置json5-loader仍报错求助

问题原因

你目前的配置只能处理.json5后缀的文件,完全不覆盖普通.json格式文件,出现语法报错的核心原因是webpack把.json文件当成JavaScript代码来解析了,JSON的键值对语法不符合JS语法规则才会抛出Missing semicolon的错误。
出现这个问题大概率是你现有的loader规则意外命中了.json文件,最常见的情况是babel-loader的匹配规则写得太宽泛,把.json后缀也包含了进去。

解决步骤

  1. 检查所有loader的匹配规则
    首先找到处理JS/TS的loader配置(一般是babel-loader、ts-loader等),确认它的test正则没有包含.json后缀:
    错误示例:
// 错误:正则包含了json,会把json文件交给babel解析
{
  test: /\.(js|jsx|ts|tsx|json)$/i,
  exclude: /node_modules/,
  use: 'babel-loader'
}

把正则里的|json删掉即可,修正后示例:

{
  test: /\.(js|jsx|ts|tsx)$/i,
  exclude: /node_modules/,
  use: 'babel-loader'
}
  1. 不需要额外配置处理普通JSON
    webpack5原生支持JSON文件解析,只要没有其他loader命中.json文件,直接导入就能正常使用,不需要安装任何loader。
  2. 如果你需要兼容JSON5语法的JSON文件
    如果你的.json文件里用到了注释、尾逗号等JSON5支持的语法,需要修改json5-loader的匹配规则,让它同时覆盖.json和.json5后缀:
rules: [
  {
    test: /\.json5?$/i,
    loader: 'json5-loader',
    type: 'javascript/auto',
    options: {
      esModule: true,
    },
  },
]

这里的type: 'javascript/auto'是为了禁用webpack默认的JSON解析逻辑,完全交给json5-loader处理。

修改完成后重启webpack服务即可正常导入JSON文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:24:05