集成编译打包

更新时间: 2026/01/06 15:49:38

本文介绍 Electron 项目在开发网易会议组件的集成 SDK 阶段、编译运行阶段和打包阶段可能遇到的问题及解决方案。

集成 SDK 阶段

npm install 下载很慢或超时

错误信息:code ETIMEDOUT

这种情况一般是网络或代理问题,参考以下方式进行尝试:

  • 设置镜像源

    https://registry.npmjs.org/ 是 npm 官方原始镜像下载地址,国内用户下载较慢。切换为位于中国大陆的可靠镜像源地址能有效提高下载速度,以淘宝 npm 镜像源为例:

    Shell# 设置 npm 的镜像源为淘宝源
    npm config set registry https://registry.npmmirror.com/
    # 设置 npm 的 Electron 镜像源为淘宝镜像源
    npm config set ELECTRON_MIRROR https://npmmirror.com/mirrors/electron/
    
  • 修改环境变量

    • Windows 右键单击 此电脑 > 属性 > 高级系统设置 > 环境变量。在 用户变量 下新建以下变量:

      变量名 变量值
      ELECTRON_MIRROR https://npmmirror.com/mirrors/electron/
    • macOS

      编辑您的 Shell 配置文件(如 ~/.zshrc~/.bash_profile),添加以下行:

      Shellexport ELECTRON_MIRROR="https://npmmirror.com/mirrors/electron/"
      

    设置完成后,重新打开一个命令行工具窗口,运行 npm install 安装依赖。

使用 cnpm 和 yarn 安装依赖时报错

遇到这种情况,网易云信推荐您先参考上文 npm install 下载很慢或超时 中的方法,使用 npm 原生命令设置镜像源和代理地址后安装依赖。

您也可以参考以下命令设置 yarn 的代理和镜像源:

Shell# 设置代理
yarn config set proxy <代理服务器地址>:<端口号>
yarn config set https-proxy <代理服务器地址>:<端口号>

# 设置镜像源
yarn config set registry https://registry.npmmirror.com/
yarn config set ELECTRON_MIRROR https://npmmirror.com/mirrors/electron/

编译运行阶段

Windows 上运行提示非 32 位的应用

报错信息:neroom.node is not a valid Win32 application

缺少 Visual C++ 运行时库,需要安装 vc_redist.x64.exe 后重新运行应用。为避免用户手动安装该库,可在安装应用程序的时候设置为静默安装该库。

Error: The specified module could not be found

运行报错 error: 'Error: The specified module could not be found

缺少 Visual C++ 运行时库,需要安装 vc_redist.x64.exe 后重新运行应用。为避免用户手动安装该库,可在安装应用程序的时候设置为静默安装该库。

打包阶段

打包完成运行报错

  • Error: Cannot find module 'nemeeting-electron-sdk'
  • Error: Cannot find module 'neroom.node'

以上报错表示无法解析库或找不到模组。该报错通常是由于编译工具的配置不正确导致的。参考以下方法解决:

  1. 检查 asar.unpacked 是否配置正确

    asar.unpacked 配置用于指定哪些原生模块(.node 文件等)不应被打包进 asar 归档。需要把 nemeeting-electron-sdkneroom-node-sdk 打包到 asar.unpacked 中。更多详情,请参考 Electron Builder 官网文档Electron Forgge 官网文档

  2. 修改工具配置

    根据您使用的语言以及编译工具,参考以下页面进行配置,确保原生 .node 模块能被正确加载:

    • Vuevue-cli-plugin-electron-builder

      javascript// vue.config.js 文件 externals 添加 emeeting-electron-sdk
      module.exports = {
        pluginOptions: {
          electronBuilder: {
            // 配置要打包进应用的依赖
            externals: ['nemeeting-electron-sdk'],
          },
        },
      }
      
    • Viteelectron-vite (无需额外配置)

    • Reactelectron-react-boilerplate

      json// relase/app/package.json 文件 dependencies 增加 nemeeting-electron-sdk
      {
        "dependencies": {
          "nemeeting-electron-sdk": "^4.x"
        }
      }
      
      
    • Webpackwebpack.electron.build(无需额外配置)

  3. 需确保项目对 SDK 的依赖方式为 require

    在某些打包配置下(尤其是在 Vue 项目中),import 语句可能会导致一些符号冲突问题,从而导致打包失败。使用 require 语句则可以避免这些问题。

    TypeScript// import NEMeetingKit from 'nemeeting-electron-sdk';
    /// 将 import 修改为 require
    const { default: NEMeetingKit } = require('nemeeting-electron-sdk');
    

应用授权相关报错

报错信息:com.apple.security.app-sandbox of null

该报错表示 app-sandbox 异常。app-sandbox 是 macOS 的一种安全机制,可限制应用程序对系统资源的访问。

如果您不需要发布 App 至 Mac App Store,可以直接在 .entitlements 签名配置文件中删除 com.apple.security.app-sandbox 键值对。否则,请检查 .entitlements 文件是否正确配置,确保无语法和命名等错误。

此文档是否对你有帮助?
有帮助
去反馈
  • 集成 SDK 阶段
  • npm install 下载很慢或超时
  • 使用 cnpm 和 yarn 安装依赖时报错
  • 编译运行阶段
  • Windows 上运行提示非 32 位的应用
  • Error: The specified module could not be found
  • 打包阶段
  • 打包完成运行报错
  • 应用授权相关报错