React+MUI X Data Grid项目Netlify及本地生产构建报错求助
问题说明
- 本地开发模式运行正常,但Netlify构建时报错:
./node_modules/@mui/x-data-grid/locales/daDK.js Attempted import error: 'daDK' is not exported from '@mui/material/locale' (imported as 'daDKCore').
- 本地生产模式构建同样失败,但错误信息不同:
Attempted import error: 'useGridApiContext' is not exported from '@mui/x-data-grid'
- 怀疑
useGridApiContext不属于@mui/x-data-grid社区版,但不解为何开发模式下能正常工作。 - 移除
useGridApiContext后,本地生产构建可正常运行,但Netlify构建仍失败,报错如下:
https://github.com/browserslist/browserslist#browsers-data-updating Failed to compile. ./node_modules/@mui/x-data-grid/locales/daDK.js Attempted import error: 'daDK' is not exported from '@mui/material/locale' (imported as 'daDKCore').
解决方法
关于useGridApiContext的问题
useGridApiContext的确是@mui/x-data-grid-pro(专业版)专属API,社区版@mui/x-data-grid不包含这个方法。开发模式能运行是因为React在开发环境下不会做严格的导出校验,或是本地依赖中间接引入了专业版包,但生产构建会做严格的树摇和导出检查,因此触发报错。
关于Netlify构建的daDK国际化问题
这个问题源于@mui/x-data-grid的丹麦语本地化文件依赖@mui/material/locale中的daDK导出,但你的@mui/material版本过低,未包含该本地化包。按以下步骤解决:
- 将
@mui/material升级至支持丹麦语本地化的版本(至少v5.8.0,该版本新增了daDK locale) - 确保
@mui/x-data-grid与@mui/material版本一致,避免版本不兼容 - 清空Netlify的构建缓存:在Netlify控制台的构建设置中,找到“Clear cache and deploy site”选项,重新触发构建,避免旧依赖缓存引发问题
另外,也可以手动导入丹麦语本地化文件替代自动导入:
import { daDK as dataGridDaDK } from '@mui/x-data-grid/locales'; import { createTheme } from '@mui/material/styles'; import daDK from '@mui/material/locale/daDK'; const theme = createTheme( { /* 你的主题配置 */ }, daDK, dataGridDaDK, );
内容的提问来源于stack exchange,提问作者Derek Jin
相关产品推荐
相关产品推荐

