vscode源码分析【一】从源码运行vscode

安装git,nodejs和yarn
安装Python27,3.x版本的不行,确保它在你的环境变量里;
安装gulpjavascript

npm install --global gulp-cli

安装windows build tools:java

npm install --global windows-build-tools --vs2015

安装node-gypnode

npm install -g node-gyp

上面安装的一大堆东西,看似没无关,其实他们大都是用来编译原生nodejs插件的,
nodejs的原生插件不是基于2进制分发的,是源码分发的,须要开发者本身编译;

下载vscode的源码;
用管理员的方式打开powershell,不是管理员身份不行git

在源码根目录下执行:yarn,安装项目依赖的包,运行以前确保你处于FQ状态
这行命令执行时,须要下载electron,会比较耗时;
执行github

yarn watch

这行会执行构建工做;直到你看到以下输出,说明构建成功了!shell

Finished compilation with 0 errors after

看到这一行后,构建命令并无退出;
它会监视vscode源码文件的变化,若是有变化,它会立刻执行增量的构建,实时反映源码变化的结果,赞!
用管理员身份另起一个powershell,执行npm

.\scripts\code.bat

这行命令又会给你下载electron;
若是你不想下载,看看code.bat文件,会发现:gulp

:: Download Electron if needed
node build\lib\electron.js

打开这个文件,你会发现:windows

// returns 0 if the right version of electron is in .build/electron

分析electron.js会发现,它须要的electron的版本号在根目录下的.yarnrc文件中有配置electron

disturl "https://atom.io/download/electron"
target "4.2.4"
runtime "electron"

vscode用的electron版本不够新,个人“想学吗”都用到5.0.2了,它还在4.2.4,
这个版本对有些原生组件兼容的不太好,好比:这个issue
刚发现这个issue在今年4月底的时候,被这个pr解决了,哈,当我没说!
若是你想加快下载速度,你能够到淘宝的electron镜像去下载相应的版本,
下载的压缩包,解压后放到这个目录下.build/electron便可;

我发现vscode没有用electron的ffmpeg.dll,而是用了一个体积更小的ffmpeg.dll
具体是由于BUG仍是由于更小的体积,先不去深究。

运行起来后是这个样子的(注意,它的图标和title都和你下载的发行版是不同的)


若是要调试主进程的话,能够看下图,直接在主进程的代码里下断点便可
 

相关文章
相关标签/搜索