一、环境准备
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"