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

AngularJS渲染TSX编写的React组件报jsxRuntime未定义错误如何解决

解决思路
  • 第一步:修正Webpack中TS/TSX文件的Babel配置
    你当前ts/tsx的loader配置仅配置了@babel/preset-env和@babel/preset-typescript,缺少React JSX的编译规则,导致TSX文件编译时没有正确处理JSX语法,才会残留require('react/jsx-runtime')的调用未被正确适配。修改配置如下:
{
    test: /\.(ts|tsx)$/,
    exclude: /node_modules/, // 修正原错误的字符串格式排除规则,改用正则匹配
    use: {
        loader: 'babel-loader',
        options: {
            presets: [
                '@babel/preset-env', 
                '@babel/preset-typescript',
                // 新增React preset并配置automatic runtime
                ['@babel/preset-react', {
                    "runtime": "automatic"
                }]
            ]
        }
    }
}
  • 第二步:清理冗余依赖避免冲突
    你当前package.json中同时存在新版@babel/preset-env和废弃的babel-preset-env@1.6.0,二者会导致编译规则冲突,直接删除旧版babel-preset-env依赖即可。
  • 第三步:补全必要的React相关依赖
    你贴出的依赖列表中缺少React核心依赖及类型定义,执行以下命令安装:
    npm install react react-dom && npm install -D @types/react @types/react-dom
  • 第四步:可选适配Webpack4的模块解析规则
    如果修改后仍提示react/jsx-runtime找不到,可在Webpack配置的resolve.alias中添加别名适配:
resolve: {
  extensions: ['.js', '.jsx', '.ts', '.tsx'],
  alias: {
    'react/jsx-runtime': require.resolve('react/jsx-runtime')
  }
}
  • 第五步:简化Babel配置(可选)
    你现在.babelrc中同时配置了@babel/preset-react和单独的@babel/plugin-transform-react-jsx,其实只需要在@babel/preset-react中配置runtime参数即可,可删除单独的JSX插件配置避免重复:
{
    "presets": [
        "@babel/preset-env",
        ["@babel/preset-react", {
            "runtime": "automatic"
        }]
    ],
    "plugins": [
        "@babel/plugin-proposal-object-rest-spread"
    ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 05:27:02