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

运行npm run build时Webpack处理React JSX<div>标签编译失败如何解决

问题根因与解决方案

你出现该报错的核心原因有3个:

  • 你使用react-scripts(也就是Create React App脚手架)执行编译,默认不会读取项目根目录下自定义的webpack.config.js,你写的loader配置完全没有生效
  • 默认babel-loader会跳过node_modules目录下的文件编译,你fork的react-d3-graph是未编译的JSX源码,放在node_modules下没有被loader处理
  • 你的webpack配置本身存在语法错误,无效配置项也会导致规则不生效

具体修复步骤

步骤1:覆盖Create React App的默认配置

你可以用craco工具无需eject就能修改CRA的内置配置:

  1. 安装依赖:
npm install @craco/craco --save-dev
  1. 修改package.json中的scripts配置:
"scripts": {
  "start": "craco start",
  "build": "craco build",
  "test": "craco test",
  "eject": "react-scripts eject",
  "api": "npx json-server --watch .\\src\\components\\limit.json --port 8000"
}

步骤2:新增craco.config.js配置

在项目根目录新建craco.config.js,添加以下配置,让babel-loader处理react-d3-graph的源码:

module.exports = {
  webpack: {
    configure: (webpackConfig) => {
      // 找到babel-loader的规则
      const babelLoaderRule = webpackConfig.module.rules.find(
        rule => rule.loader && rule.loader.includes('babel-loader')
      );
      // 修改规则,不排除react-d3-graph
      babelLoaderRule.exclude = /node_modules(?!\/react-d3-graph)/;
      return webpackConfig;
    }
  },
  babel: {
    presets: ['@babel/preset-env', '@babel/preset-react'],
    plugins: ['@babel/plugin-proposal-class-properties']
  }
};

步骤3:清理无效配置

删除项目根目录下你之前写的错误的webpack.config.js,避免配置冲突。

替代方案(无需修改配置)

你也可以把fork的react-d3-graph仓库的源码放到项目的src/components目录下直接引用,不要作为node_modules依赖安装,即可直接被CRA的默认babel规则处理。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:06:04