在Windows平台上从源码编译vscode
操作前须知
- 如果你只是不想被微软遥测,想用纯净的vscode,那么你可以直接下载vscodium,不必折腾
- 如果编译出现问题,请先看官方文档里有没有写
- 我使用的是Windows Terminal中的普通命令行,因为powershell运行yarn好像有问题,所以我没有用
- 编译过程中内存占用可能高达12GB,我看输出,有可能可以手动设置(--max-old-space-size),但我没有尝试,如果你的内存不够,请做好准备
- 编译的缓存文件比较多,最好用固态硬盘,可以快不少
参考:
官方文档
https://www.bilibili.com/video/BV1At4y1r7uQ/
https://www.youtube.com/watch?v=ISZja8tKR9Q
https://blog.csdn.net/xiaoxiezZ/article/details/103062971
https://www.jianshu.com/p/318629e3197f
0.准备工具
注意:各工具的版本要求写在官方文档里,应该是在不断更新的,注意检查版本
1.下载源码
2.编译
- 进入源码文件夹,打开命令行
- 运行
yarn
这一步时间较长,我用了几十分钟,而且会下载大量文件,连接不上的可以试试魔法 - 运行
yarn run gulp vscode-win32-x64-min
这一步时间很长,我这里大概是这样,CPU的一个核心占满,内存占用不断上升,16g内存大概用了12g,硬盘一直在读写。然后突然停在Starting compilation...
上,CPU单核仍然占满,但是硬盘不动了。其实这是正常的,真的要等半小时
3.完成
- 源码目录的上一级会出现一个
VSCode-win32-x64
文件夹,里面的Code - OSS.exe
就是vscode程序
4.各种问题
- 提示
Invalid C/C++ Compiler Toolchain.
:这是找不到你的c++编译器了,编译vscode好像必须用msvc,最简单的方法是按照官方文档安装独立编译器。编译vscode时它只会检查C:\Program Files\Microsoft Visual Studio
下面有没有编译器,所以你如果把visual studio安装在了别的目录也没用。在<源码目录>\build\npm\preinstall.js
的44和59行可以看到检查编译器位置的规则,如果你的visual studio在其他目录,可以根据这个规则mklink进行链接来解决C:\Program Files\Microsoft Visual Studio\2022\Community
对应的是按照visual studio时的IDE目录 - 出现MSB8040:参考官方文档,在visual studio里面安装3个单个组件
- 提示
Not a git repository
:可能是因为你没有clone仓库,没有.git文件夹,我直接把<源码目录>\build\npm\postinstall.js
的最后两行注释掉了 - 提示
There is no Windows 10 SDK installed at
:这是找不到你的Windows Kits,它好像只会查找默认安装位置的,可以直接修改报错的文件里的查找路径,也可以用mklink链接你的kits - 提示
Error: Request https://api.github.com/repos/microsoft/vscode-js-debug-companion/releases/tags/v1.1.2 failed with status code: 403 (you may be rate limited)
:这是纯网络问题,github访问不稳定,上午到下午成功率比较高,或者用魔法也行 - 出现
yarn install failed :vscode-ripgrep: Command failed.
:删除C:\Users\<用户名>\AppData\Local\Temp\vscode-ripgrep-cache-1.2.4
5.关于编译后的打包和运行
- 如果你只需要测试vscode,可以在运行
yarn
之后,在源码目录下运行yarn watch
,然后会停在一个地方一直不动(我忘了记录了),不要关闭命令行,在源码目录下再开一个命令行,运行.\scripts\code.bat
,就可以启动vscode了 - 前面运行
yarn run gulp vscode-win32-x64-min
其实是打包,主要是从简书那篇文章里面学的,看那个就懂了 - 打包后运行
Code - OSS.exe
提示Cannot find module 'minimist'
:我也不清楚怎么回事,重新下载源码再编译一次就好了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧