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

React v17+Ruby Rails环境中EZGrid DataGrid报错:无法解析react/jsx-runtime

解决React v17 + Rails环境下EZGrid无法解析'react/jsx-runtime'的问题

问题根源

你之前修改的是Storybook的Webpack配置,但实际报错来自项目构建流程,应该修改Rails项目的主Webpack配置文件。错误本质是:EZGrid的代码以严格ES模块方式导入react/jsx-runtime,但React v17中该文件带.js后缀,Webpack在严格ES模块解析规则下无法自动补全扩展名,导致找不到模块。

解决方案步骤

1. 找到正确的Webpack配置文件

Rails项目的主Webpack配置位于config/webpack/environment.js,这是你需要修改的核心配置文件。

2. 添加别名配置

打开config/webpack/environment.js,添加别名映射,将无扩展名的请求指向带.js后缀的实际文件:

const { environment } = require('@rails/webpacker');
const webpack = require('webpack');

// 添加别名配置
environment.config.set('resolve.alias', {
  ...environment.config.get('resolve.alias'),
  'react/jsx-runtime': require.resolve('react/jsx-runtime.js'),
  'react/jsx-dev-runtime': require.resolve('react/jsx-dev-runtime.js')
});

module.exports = environment;

3. 检查Babel配置(可选)

确保Babel已配置React v17的JSX转换插件,打开项目根目录的babel.config.js(或.babelrc),确认包含以下配置:

module.exports = function(api) {
  api.cache(true);
  return {
    presets: ['@rails/webpacker/babel'],
    plugins: [
      ['@babel/plugin-transform-react-jsx', { runtime: 'automatic' }]
    ]
  };
};

4. 清理缓存并重启服务

执行以下命令清理Webpack缓存,然后重启开发服务器:

bin/webpacker clean
bin/webpacker dev-server

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 17:13:28