【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)
  1. 安装 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
        在这里插入图片描述
  2. 配置 Node.js 构建工具:

    • 打开命令提示符并运行 npm config edit,添加或修改 msvs_version 配置项,与您的 Visual Studio 版本相同。例如:
      msvs_version=2022
      
    • 警告: 确保您的配置文件路径仅包含 ASCII 字母字符(例如 John),否则可能会导致 node-gyp 使用问题(参考 nodejs/node-gyp/issues#297)。
  3. 注意:

    • 当前不支持通过 Windows 的 Linux 子系统(WSL)进行构建和调试。
    • 如果需要在 Windows 上使用 WSL2,请参考 Selfhosting-on-Windows-WSL
macOS
  1. 安装 Xcode 和命令行工具:
    • 安装 gcc 并包含相关工具链(如 make)。
    • 运行以下命令安装命令行工具:
      xcode-select --install
      
Linux
  1. 在基于 Debian 的 Linux 上:

    • 执行以下命令安装构建工具和依赖:
      sudo apt-get install build-essential g++ libx11-dev libxkbfile-dev libsecret-1-dev libkrb5-dev python-is-python3
      
  2. 在基于 Red Hat 的 Linux 上:

    • 执行以下命令安装开发工具和依赖:
      sudo yum groupinstall "Development Tools" && sudo yum install libX11-devel.x86_64 libxkbfile-devel.x86_64 libsecret-devel krb5-devel # 或者 .i686
      
其他的:
  1. 安装依赖:

    • 安装 makepkg-configGCC 或其他编译工具链。
  2. 构建 deb 和 rpm 包:

    • 需要 fakerootrpm
      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

### 编译 VSCode 源码的教程 VSCode 是一个开源项目,支持在多种操作系统上进行源码编译。以下内容详细介绍了在不同环境下编译 VSCode 的方法和注意事项。 #### 1. 环境准备 在开始编译之前,需要确保开发环境已正确配置。根据引用[^3]和引用[^4]的内容,以下是所需工具和依赖项: - **Git**: 版本 `v_2.34.1` 或更高版本。 - **Node.js**: 推荐使用 `v_14.18.3` 或 LTS 版本。 - **Yarn**: 最新版本。 - **node-gyp**: 确保安装了最新版本。 - **Python**: 推荐使用 `v_3.9.9` 或兼容版本。 - **Visual Studio Build Tools**: 如果是在 Windows 环境下,推荐使用 `v_2019` 或更高版本。 对于 Windows 环境,还需要注意以下事项: - 如果不想安装完整的 Visual Studio 2015,可以使用 Windows Build Tools npm module[^4]。 - 需要确保所有工具的版本与官方文档要求一致,避免因版本不匹配导致的错误。 #### 2. 获取源码 通过 Git 克隆 VSCode 的官方仓库: ```bash git clone https://github.com/microsoft/vscode.git cd vscode ``` #### 3. 安装依赖 进入克隆的仓库目录后,运行以下命令以安装所需的依赖项: ```bash yarn install ``` 这一步会自动下载并安装所有必要的开发依赖。 #### 4. 构建源码 完成依赖安装后,可以开始构建 VSCode。根据引用[^3]中的描述,在 Windows 环境下可以运行以下命令: ```bash yarn run gulp compile ``` 此命令将编译源码并生成可执行文件。 #### 5. 运行调试版本 为了运行调试版本的 VSCode,可以使用以下命令: ```bash yarn run code ``` 这将启动一个开发者模式的 VSCode 实例,允许对代码进行调试和修改。 #### 6. 常见问题解决方法 - **库符号文件丢失**:如果遇到加载的库中没有符号文件的问题,可以参考引用[^2]中的建议,卸载现有的二进制安装包,并重新编译源码。 - **端口占用问题**:如果遇到端口 443 被占用的情况,可以通过以下命令查找并终止相关进程: ```bash netstat -aon | findstr 443 taskkill /PID <PID> /F ``` 或者考虑重启计算机以释放端口。 #### 7. 注意事项 - 在 32 位系统上编译时,需特别注意指令配置和软件版本的一致性[^4]。 - 如果遇到依赖冲突或版本不兼容问题,建议查阅官方文档或社区支持。 ```python # 示例代码:验证 Node.js 和 Yarn 是否正确安装 import subprocess def check_dependency(command): try: result = subprocess.run(command, shell=True, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) return result.stdout.decode('utf-8') except subprocess.CalledProcessError as e: return f"Error: {e.stderr.decode('utf-8')}" print(check_dependency("node -v")) print(check_dependency("yarn -v")) ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

接着奏乐接着舞。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值