linux上编译electron源码

一、环境准备

1、系统安装

Electron 构建依赖 Chromium 工具链,因此必须使用较新的 64-bit Linux 系统。

推荐系统版本:Ubuntu22.04 64位

版本镜像下载链接:https://releases.ubuntu.com/22.04/ubuntu-22.04.5-desktop-amd64.iso

2、环境配置

(1)sudo apt update 更新软件列表

向系统设置的软件源服务器发送请求,获取最新的软件包索引,方便后续apt install安装的软件包信息是最新最全面的。

bash 复制代码
sudo apt-get update

(2)安装git: 方便从github上拉去electron源码

bash 复制代码
sudo apt install git

(3)安装python3 编译electron时,gclient、gnninja工具都会用到python3编译构建

bash 复制代码
sudo apt install python3-pip
sudo apt install python3

python3的安装可以使用pip3来做版本管理维护。

python3-pip 是 Python 3 的包管理器,用来安装、升级、卸载 Python 第三方库,是进行任何 Python 开发的基础工具。

(4)其他依赖安装

bash 复制代码
sudo apt install -y \
    build-essential pkg-config \
    curl zip unzip \
    libgtk-3-dev libnss3-dev libxss-dev libasound2-dev \
    libdrm-dev libgbm-dev libglib2.0-dev libpci-dev \
    libcups2-dev libxtst-dev libxkbfile-dev

clang lld使用的是鸿蒙编译工具链里的,不需要安装。否则也需要安装:

bash 复制代码
sudo apt-get install clang lld

下载 depot_tools后,里面已经自带 gclient 工具,不需要额外下载。

二、获取electron整个体系源码树

Electron 的源码并不是一个仓库,而是Electron 自己的代码、Chromium 上百个子仓库、数十 GB 的依赖代码(V8、Skia、Blink、Media...)。

1、获取 depot_tools(Electron/Chromium 的构建工具)

使用官方源下载(不推荐)

bash 复制代码
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
echo "export PATH=$(pwd)/depot_tools:\$PATH" >> ~/.bashrc
source ~/.bashrc

Chromium/Electron 的源码和依赖非常大(几十 GB),如果直接用官方 Git 仓库,国内下载非常慢甚至会超时,可以通过国内源加速。

bash 复制代码
# 克隆 depot_tools
git clone https://mirrors.tuna.tsinghua.edu.cn/git/depot_tools.git
echo 'export PATH=~/depot_tools:$PATH' >> ~/.bashrc
source ~/.bashrc

# 使用国内镜像同步 Chromium/Electron
export GIT_USE_CURL=1
export GIT_PROXY_COMMAND="git-remote-http"

# 配置 gclient 国内镜像加速
export GIT_USE_CURL=1
export NO_AUTH_BOTO_CONFIG=/dev/null
export GIT_HTTP_LOW_SPEED_LIMIT=0
export GIT_HTTP_MAX_REQUESTS=64

2、获取electron源码

bash 复制代码
git clone https://github.com/electron/electron.git

# 执行命令`git lfs pull`,确保仓库中的大文件已经下载完成
git lfs pull
bash 复制代码
# 配置 gclient 并同步依赖(浅克隆加速)
gclient config --name src/electron https://github.com/electron/electron
gclient sync --no-history --with_branch_heads --with_tags

3、生成构建配置

bash 复制代码
gn gen out/Release --args='import("//electron/build/args/release.gn")'

三、配置编译脚本

bash 复制代码
#!/bin/bash
# =====================================================
# 国内 Linux 自动化搭建 Electron 编译环境(升级版)
# 支持 Debug / Release 构建 + pip 虚拟环境
# 系统:Ubuntu / Debian
# =====================================================

set -e

WORKDIR=$HOME/electron_build
DEPOT_TOOLS=$HOME/depot_tools
VENV_DIR=$HOME/py_env

echo "============================================="
echo "1️⃣ 安装系统依赖..."
sudo apt update
sudo apt install -y git python3 python3-pip python3-venv build-essential pkg-config \
clang lld curl zip unzip \
libgtk-3-dev libnss3-dev libxss-dev libasound2-dev \
libdrm-dev libgbm-dev libglib2.0-dev libpci-dev \
libcups2-dev libxtst-dev libxkbfile-dev

echo "2️⃣ 创建 Python 虚拟环境..."
python3 -m venv $VENV_DIR
source $VENV_DIR/bin/activate
pip install --upgrade pip

echo "3️⃣ 下载 depot_tools(国内清华镜像)..."
if [ ! -d "$DEPOT_TOOLS" ]; then
    git clone https://mirrors.tuna.tsinghua.edu.cn/git/depot_tools.git $DEPOT_TOOLS
else
    cd $DEPOT_TOOLS && git pull
fi

export PATH=$DEPOT_TOOLS:$PATH
echo 'export PATH=$DEPOT_TOOLS:$PATH' >> ~/.bashrc

echo "4️⃣ 配置 gclient 国内镜像加速..."
export GIT_USE_CURL=1
export NO_AUTH_BOTO_CONFIG=/dev/null
export GIT_HTTP_LOW_SPEED_LIMIT=0
export GIT_HTTP_MAX_REQUESTS=64

echo "5️⃣ 创建 Electron 工作目录..."
mkdir -p $WORKDIR && cd $WORKDIR

echo "6️⃣ 克隆 Electron 源码..."
if [ ! -d "electron" ]; then
    git clone https://github.com/electron/electron.git
else
    cd electron && git pull
fi
cd electron

echo "7️⃣ 配置 gclient 并同步依赖(浅克隆加速)..."
gclient config --name src/electron https://github.com/electron/electron
gclient sync --no-history --with_branch_heads --with_tags

echo "8️⃣ 生成构建配置..."
cd src
gn gen out/Debug --args='import("//electron/build/args/debug.gn")'
gn gen out/Release --args='import("//electron/build/args/release.gn")'

echo "============================================="
echo "环境搭建完成!"
echo "虚拟环境已激活,pip 已升级"
echo "Debug 构建路径: src/out/Debug"
echo "Release 构建路径: src/out/Release"
echo ""
echo "编译命令示例:"
echo "  ninja -C src/out/Debug electron   # Debug"
echo "  ninja -C src/out/Release electron # Release"
echo ""
echo "如果关闭终端,可重新激活 Python 虚拟环境:"
echo "  source $VENV_DIR/bin/activate"
相关推荐
粉末的沉淀16 小时前
jeecgboot:electron桌面应用打包
前端·javascript·electron
fruge1 天前
Electron 桌面应用开发:前端与原生交互原理及性能优化
前端·electron·交互
UpgradeLink2 天前
Electron 项目使用官方组件 electron-builder 进行跨架构打包
前端·javascript·electron
UpgradeLink2 天前
开源Electron应用GitHubActions自动化部署与升级指南
electron·开源·自动化
UpgradeLink2 天前
Electron项目使用electron-updater与UpgradeLink接入参考
开发语言·前端·javascript·笔记·electron·用户运营
梵尔纳多2 天前
第一个 Electron 程序
前端·javascript·electron
小圣贤君2 天前
从零到一:打造专业级小说地图设计工具的技术实践
vue.js·electron·写作·canvas·小说·小说地图
梵尔纳多2 天前
electron 安装
前端·javascript·electron
yuanyxh3 天前
静默打印程序实现
前端·react.js·electron
龙国浪子3 天前
从零到一:打造专业级小说地图设计工具的技术实践
前端·electron