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

从CRA迁移至Vite后出现Braze相关TypeError问题求助

问题:React从CRA迁移到Vite后出现Braze相关报错

迁移完成后触发以下错误:

Uncaught TypeError: Class extends value undefined is not a constructor or null
    at html-message.js:2:1

注意到html-message.js不在项目源码中,也未在node_modules目录下找到,浏览器调试工具显示该文件源码如下:

import InAppMessage from './in-app-message.js';
export default class HtmlMessage extends InAppMessage {
  constructor(l, u, n, e, r, s, t, i, o, a, c) {
    super(
      l,
      null,
      null,
      u,
      n,
      null,
      null,
      null,
      (e = e || InAppMessage.DismissType.MANUAL),
      r,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      s,
      t,
      null,
      null,
      null,
      i,
      void 0,
      void 0,
      void 0,
      o,
      a
    ),
      (this.messageFields = c);
  }
  ll() {
    return !1;
  }
  k(l) {
    if (this.Ce === InAppMessage.es.ul) {
      if (this.nl) return !1;
      this.nl = !0;
    }
    return this.lt.St(l), !0;
  }
}

已确认错误来自Braze,求可行的解决思路。


解决思路
  • 升级Braze SDK版本:Vite的模块解析逻辑和CRA差异较大,旧版Braze SDK可能未适配ES模块规范。直接升级到最新版的Braze React/Web SDK,多数情况下能解决模块导入导致的undefined问题。
  • 配置Vite依赖预编译:在vite.config.js中将Braze相关包加入optimizeDeps.include,强制Vite预编译这些依赖,避免路径解析或动态加载异常:
    import { defineConfig } from 'vite';
    import react from '@vitejs/plugin-react';
    
    export default defineConfig({
      plugins: [react()],
      optimizeDeps: {
        include: ['@braze/web-sdk', '@braze/react-sdk']
      }
    });
    
  • 规范Braze导入方式:检查项目中引入Braze的代码,严格遵循官方文档的导入规范,避免直接导入Braze内部的深层模块(比如示例中的in-app-message.js这类未对外暴露的文件)。
  • 临时关闭Tree-shaking排查:如果上述方法无效,可临时在vite.config.js中关闭生产环境的tree-shaking,确认是否是tree-shaking误删了Braze的必要模块:
    export default defineConfig({
      build: {
        rollupOptions: {
          treeshake: false
        }
      }
    });
    
  • 调整Braze初始化时机:确保Braze SDK在React组件挂载前完成初始化,避免组件渲染时SDK模块尚未加载完成,导致继承的父类InAppMessage为undefined。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 12:47:33