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

React CRA迁移至Vite后无法导入agora-rtc-sdk-ng求助

解决方案:Vite迁移后agora-rtc-sdk-ng找不到electron依赖的问题

问题原因

agora-rtc-sdk-ng@4.17.2内部包含针对Electron环境的代码分支,但在浏览器环境下Vite会尝试解析未安装的electron依赖,导致报错。

可行解决办法

方法1:配置Vite拦截electron导入请求

在项目根目录的vite.config.js中添加以下配置,让Vite不对electron依赖进行实际解析:

import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';

export default defineConfig({
  plugins: [react()],
  optimizeDeps: {
    esbuildOptions: {
      plugins: [
        {
          name: 'skip-electron',
          setup(build) {
            // 拦截electron的导入请求
            build.onResolve({ filter: /^electron$/ }, () => ({
              path: 'electron',
              namespace: 'empty-ns'
            }));
            // 返回空模块内容
            build.onLoad({ filter: /.*/, namespace: 'empty-ns' }, () => ({
              contents: 'export default {}'
            }));
          }
        }
      ]
    }
  }
});

方法2:通过别名映射空模块

先安装empty-module包:

npm install empty-module --save-dev

然后修改vite.config.js:

import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';

export default defineConfig({
  plugins: [react()],
  resolve: {
    alias: {
      electron: 'empty-module'
    }
  }
});

方法3:升级Agora SDK版本

旧版本SDK可能存在Vite兼容问题,尝试升级到最新4.x稳定版:

npm update agora-rtc-sdk-ng

升级后重启Vite服务,检查报错是否消失。

方法4:确认导入方式正确

确保代码中从SDK主包导入,而非直接引用内部编译文件:

// 正确导入
import AgoraRTC from 'agora-rtc-sdk-ng';

// 错误导入(需避免)
import AgoraRTC from 'agora-rtc-sdk-ng/AgoraRTC_N-production.js';

内容的提问来源于stack exchange,提问作者Przemek Wit

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 18:05:33