前言
构建vscode源码,可以参考这篇vscode源码解析(一) - 构建与调试
目前已收录问题
-
构建相关问题
1、乱码的解决方案
2、Spectre-mitigated -
调试相关问题
1、确定启动是否正常
2、The preLaunch ‘Ensure Prelaunch Dependencies’ terminated with exit code 1
由于每个人环境不同,以及vscode也在不断更新,所以即使一篇很详细的构建文档,实际操作时候也会有各种各样奇怪的报错,这篇文档就是帮大家排坑的,如果大家有任何问题,也欢迎私信我
持续更新,欢迎反馈问题
乱码的解决方案
其实如果我们知道明确的报错,排查问题会简单很多,因为直接copy paste到网上搜一下嘛。但是vscode构建时候,如果你的机器是中文编码的,那么很有可能得到一个乱码的报错,这个时候你都不知道从哪儿排查
这个时候,你只需要在当前的目录下打开一个cmd,输入
chcp 65001
就可以改变编码,再次执行错误的命令就可以得到明确的报错提示了,比如上面的报错会显示出来。
好吧,这样你就知道,你缺少了 Spectre-mitigated libraries这个库,我们等下会说怎么解决
Spectre-mitigated
报错意思很明确,就是缺少了Spectre-mitigated libraries
error MSB8040: Spectre-mitigated libraries are required for this
project. Install them from the Visual Studio installer (Individual
components tab) for any toolsets and architectures being used. Learn
more: https://aka.ms/Ofhn4c
[D:\vscode-related\vscode\node_modules\@vscode\windows-ca-certs\build\crypt32.vcxproj]
这个在vscode官网的构建文档上也有说明,并且提供了解决方案
1.打开你的visual studio installer
,并点击修改(如果多个版本,修改构建vscode时的版本就行)
2.切换到“单个组件”(Individual components)
有以下三个库需要安装(可以用搜索条件spectre mitigations
),大家注意一下这个库是区分CPU架构类型的,大家一般选择x64/x86
就行(如果是arm机器的话机器主人一般都是清楚的)
注意:下面三个库都要选上,缺一不可
MSVC Spectre-mitigated libs (latest)
C++ ATL for latest build tools with Spectre Mitigations
C++ MFC for latest build tools with Spectre Mitigations
都勾选上后点击右下角的Modify并继续,等待安装完成后再次使用yarn命令安装依赖即可
确定启动是否正常
调试不成功,我们首先在vscode里打开一个powershell终端,随后输入
./scripts/code.bat
这个步骤是跳过调试,直接去启动vscode,一般调试里面看不到的错误,执行这个脚本时候会清晰显示出来
The preLaunch ‘Ensure Prelaunch Dependencies’ terminated with exit code 1
有时候我们会遇到这个问题,这里的preLaunchTask是调试前的一个任务,一遍编译不成功会出现,可以先直接Debug Anyway跳过,如果没有看到vscode窗口,按照上面一条说的执行./scripts/code.bat
,查看报错
编译性报错,一般是环境没有搭建成功,请使用node -v命令检查node版本,并看下和当前vscode官网上要求的版本是否匹配