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"
相关推荐
国服第二切图仔2 小时前
Electron for 鸿蒙PC实战案例Gitcode口袋工具之HTTP请求封装的技术实现与设计解析
http·electron·gitcode
weixin79893765432...8 小时前
Electron + Vue 3 + Vite 实践
vue.js·electron·vite
●VON11 小时前
初识双雄:Electron 与鸿蒙 OS 的跨平台使命
javascript·electron·harmonyos
●VON13 小时前
Electron for HarmonyOS:跨平台底层原理探析
javascript·electron·harmonyos
weixin79893765432...1 天前
Electron 深入浅出地解读
electron
●VON1 天前
Electron 实战:纯图片尺寸调节工具(支持锁定纵横比)
前端·javascript·electron·开源鸿蒙
龙国浪子1 天前
🎯 小说笔记编辑中的段落拖拽移动:基于 ProseMirror 的交互式重排技术
前端·electron
●VON2 天前
从零开始:用 Electron 构建你的第一个桌面应用
前端·javascript·electron
龙国浪子2 天前
小说写作软件中的文本高亮功能:基于 TipTap 的多彩标记技术实现
vue.js·electron