【vscode源码】如何编译运行vscode及过程中问题解决
Visual Studio Code(VSCode)作为一款流行的开源编辑器,市面上很多基于vscode的套壳APP,本文将详细介绍如何编译和运行VSCode的源码,并总结一些常见问题以及解决方案,帮助开发者顺利二次开发。
1. 准备工作(Node.js、Python、C++)
在开始编译之前,我们需要确保系统上安装了一些必要的软件和工具:
1.1 安装Node.js与npm
VSCode是基于Electron构建的,而Electron是一个框架,它依赖于Node.js来处理应用的后端功能。因此,首先需要安装Node.js和npm(Node包管理器)。可以通过以下步骤安装:
-
访问 Node.js官网 下载并安装LTS版本。
-
安装完成后,打开终端(Terminal),通过以下命令验证安装是否成功:
node -v npm -v
如果输出版本号,说明安装成功。
建议node版本>=20.x
1.2 安装Python和C++构建工具
VSCode的编译过程需要Python以及C++的构建工具,因此需要确保系统中已安装Python(版本>=3.6)和Visual Studio Build Tools。
Windows 10/11(x64 或 ARM64)
-
安装 Visual C++ 构建环境:
- 通过安装 Visual Studio 构建工具或 Visual Studio 社区版来安装 Visual C++ 构建环境。
- 安装的最小工作量为
Desktop Development with C++
,但在“单个组件”中可能还需要其他组件:- MSVC v143 - VS 2022 C++ x64/x86 Spectre-mitigated libs (Latest)(适用于 ARM64 及 ARM 上的 Windows,但可能仍然需要 x64/x86)
- C++ ATL for latest build tools with Spectre Mitigations
- C++ MFC for latest build tools with Spectre Mitigations
-
配置 Node.js 构建工具:
- 打开命令提示符并运行
npm config edit
,添加或修改msvs_version
配置项,与您的 Visual Studio 版本相同。例如:msvs_version=2022
- 警告: 确保您的配置文件路径仅包含 ASCII 字母字符(例如
John
),否则可能会导致node-gyp
使用问题(参考 nodejs/node-gyp/issues#297)。
- 打开命令提示符并运行
-
注意:
- 当前不支持通过 Windows 的 Linux 子系统(WSL)进行构建和调试。
- 如果需要在 Windows 上使用 WSL2,请参考 Selfhosting-on-Windows-WSL。
macOS
- 安装 Xcode 和命令行工具:
- 安装
gcc
并包含相关工具链(如make
)。 - 运行以下命令安装命令行工具:
xcode-select --install
- 安装
Linux
-
在基于 Debian 的 Linux 上:
- 执行以下命令安装构建工具和依赖:
sudo apt-get install build-essential g++ libx11-dev libxkbfile-dev libsecret-1-dev libkrb5-dev python-is-python3
- 执行以下命令安装构建工具和依赖:
-
在基于 Red Hat 的 Linux 上:
- 执行以下命令安装开发工具和依赖:
sudo yum groupinstall "Development Tools" && sudo yum install libX11-devel.x86_64 libxkbfile-devel.x86_64 libsecret-devel krb5-devel # 或者 .i686
- 执行以下命令安装开发工具和依赖:
其他的:
-
安装依赖:
- 安装
make
,pkg-config
,GCC
或其他编译工具链。
- 安装
-
构建 deb 和 rpm 包:
- 需要
fakeroot
和rpm
:sudo apt-get install fakeroot rpm
- 需要
建议Python版本使用3.8
2. 获取VSCode源码
2.1 克隆VSCode的源码
VSCode的源码托管在GitHub上,因此可以通过Git来克隆项目:
git clone https://github.com/Microsoft/vscode.git
cd vscode
执行这两条命令后,VSCode的源代码将被克隆到本地,并进入项目目录。
2.2 切换到稳定分支(可选)
默认情况下,git clone
克隆的项目会指向最新的开发分支。如果你希望编译一个稳定版本,可以切换到稳定分支:
git checkout -b stable origin/stable
这样可以确保你编译的是最新的稳定版本。
3. 安装依赖
VSCode的源代码包含大量的依赖包,编译时需要安装这些依赖。在项目根目录中运行以下命令:
npm install
这条命令会根据package.json
文件中的依赖信息,自动下载和安装所有依赖包。这个过程可能需要一些时间,具体取决于网络环境和电脑性能。
4. 编译VSCode
4.1 运行编译命令
安装完所有依赖后,VSCode的源码就可以开始编译了。运行以下命令开始编译过程:
npm run watch
此命令会启动一个监听过程,当代码发生变化时,自动重新编译。在编译过程中,终端会显示相关的编译信息。
4.2 编译完成后的启动
编译完成后,可以运行VSCode,验证是否编译成功。运行以下命令启动编译后的VSCode:
# Windows
./scripts/code.bat
# MacOS & Linux
./scripts/code.sh
5. 常见问题与解决方法
在编译VSCode的过程中,开发者可能会遇到一些问题。以下是一些常见问题和解决方案。
在这里插入代码片
5.1 问题:编译过程中出现内存不足错误
在运行npm run watch
时,如果遇到内存不足错误,可以通过调整Node.js的内存限制来解决。修改命令如下:
node --max-old-space-size=8192 ./node_modules/gulp/bin/gulp.js watch
通过--max-old-space-size=8192
,将Node.js的最大内存设置为8GB,这通常可以解决内存不足的错误。
5.2 问题:安装依赖时网络问题
在国内,有时因为网络问题,npm install
会下载失败。可以尝试使用淘宝镜像来加速下载依赖:
npm config set registry https://registry.npm.taobao.org
这样设置后,所有的npm命令都会使用淘宝的镜像源进行下载。
5.3 问题:node-gyp 错误
安装 Visual Studio 并确保选择了 C++ 桌面开发 工作负载。这是编译原生 Node 模块所必需的。
安装好 Visual Studio 后,可以重新运行 npm install。
5.4 问题:版本冲突或依赖错误
有时,npm install
可能会因为某些依赖版本冲突而失败。解决方法可以尝试以下命令清空缓存并重新安装:
npm cache clean --force
npm install
如果依然存在版本冲突,可以考虑删除node_modules
目录和package-lock.json
文件后再重新安装。
5.5 问题:无法删除某些目录(EBUSY 错误)
使用管理员权限来执行命令
5.6 问题:运行./scripts/code.bat命令后弹窗报错
watch命令后多等会再执行,并且电脑配置不能太低尤其是内存,多试几次,概率问题
6. 自定义修改与二次开发
在成功编译并运行VSCode后,开发者可以根据自己的需求对VSCode进行二次开发或自定义修改。例如:
- 修改主题:你可以根据需要修改VSCode的界面主题、字体或颜色等样式。
- 添加插件:你可以开发自己的VSCode插件,并将其集成到你的本地版本中。
- 调试功能:如果你需要调试某些功能,可以通过VSCode自带的调试工具进行调试。
7. 总结
本文详细介绍了如何编译和运行VSCode源码的步骤,并总结了在过程中可能遇到的常见问题以及解决方法。希望通过这些内容,能够帮助开发者更顺利地进行VSCode源码的编译和二次开发。
参考资料:
vscode 定制开发 —— 基础准备
编译运行VSCode源码
Contributing to Visual Studio Code