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

升级MUI至5.15.13后出现Vite TypeError问题求助

MUI 5.15.13升级后Vite抛出TypeError: deepmerge.default is not a function(AstroJS环境)

问题描述

将MUI从5.14.20升级至5.15.13后,执行npm run dev时Vite在AstroJS环境下抛出TypeError,错误指向MUI内部的createPalette函数调用deepmerge时失败,错误栈如下:

TypeError: __vite_ssr_import_3__.default is not a function
    at Module.createPalette [as default] (/Users/user/code/loculus/website/node_modules/@mui/material/styles/createPalette.js:251:34)
    at Module.createTheme [as default] (/Users/user/code/loculus/website/node_modules/@mui/material/styles/createTheme.js:27:32)
    at /Users/user/code/loculus/website/node_modules/@mui/material/styles/defaultTheme.js:4:33
    at async instantiateModule (file:///Users/user/code/loculus/website/node_modules/vite/dist/node/chunks/dep-jvB8WLp9.js:54897:9)

错误发生在MUI依赖代码中deepmerge调用的位置:

const paletteOutput = deepmerge(_extends({
    // A collection of common colors.
    common: _extends({}, common),
    // prevent mutable object.
    // The palette mode, can be light or dark.
    mode,
    ...

解决方案

针对该问题,可尝试以下步骤逐一排查解决:

  • 锁定deepmerge版本
    MUI 5.15.x版本对deepmerge的依赖可能存在版本兼容性问题,手动安装指定版本的deepmerge并锁定:

    npm install deepmerge@4.3.1 --save
    
  • 调整Vite SSR外部化配置
    在astro.config.mjs中,将MUI相关包及deepmerge加入SSR非外部化列表,确保Vite正确处理模块导入:

    import { defineConfig } from 'astro/config';
    
    export default defineConfig({
      vite: {
        ssr: {
          noExternal: ['@mui/material', '@mui/system', 'deepmerge']
        }
      }
    });
    
  • 清除依赖缓存并重新安装
    可能存在依赖缓存冲突,删除旧依赖文件后重新安装:

    rm -rf node_modules package-lock.json
    npm install
    
  • 优化Vite依赖预构建
    在Vite配置中强制预构建deepmerge,确保模块解析正确:

    import { defineConfig } from 'astro/config';
    
    export default defineConfig({
      vite: {
        optimizeDeps: {
          include: ['deepmerge']
        }
      }
    });
    
  • 检查自定义主题代码
    确保项目中导入MUI主题相关函数的方式正确,使用命名导出而非错误的默认导入:

    // 正确写法
    import { createTheme, createPalette } from '@mui/material/styles';
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 10:15:18