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

构建应用时遭遇ajv依赖编译错误,求助解决方案

解决AJV依赖编译错误:JSON文件被当作JS解析的问题

问题分析

报错显示node_modules\ajv\lib\refs\data.json文件缺少分号,但这是标准JSON格式,问题根源是构建工具错误地将JSON文件当作JavaScript文件编译处理,和AJV包本身无关。

解决办法

1. 排除node_modules目录的编译(Webpack/Babel场景)

如果用Webpack,在配置文件里确保不对node_modules内的文件执行JS编译,同时保留JSON处理规则:

module.exports = {
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/, // 关键:跳过node_modules下的文件编译
        use: 'babel-loader'
      },
      {
        test: /\.json$/,
        type: 'json' // 明确处理JSON文件
      }
    ]
  }
};

如果用Babel单独配置(.babelrc或babel.config.json),添加排除规则:

{
  "presets": [...],
  "exclude": ["node_modules"]
}

2. 修正构建脚本的文件匹配规则

检查项目的构建命令,避免把.json文件纳入JS编译范围:

  • 错误示例(babel-cli):babel src --out-dir dist --extensions ".js,.json"
  • 修正后:babel src --out-dir dist --extensions ".js"

3. 清理缓存并重新安装依赖

缓存异常可能导致问题残留,执行以下命令:

# npm 用户
npm cache clean --force
rm -rf node_modules package-lock.json
npm install

# yarn 用户
yarn cache clean
rm -rf node_modules yarn.lock
yarn install

4. 排查自定义解析规则

如果项目有自定义webpack loader或babel插件,确认它们没有意外将JSON文件识别为JS文件处理,这类自定义规则可能会干扰默认的文件类型检测逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 08:55:21