专栏首页liulunvscode源码分析【一】从源码运行vscode

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

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

npm install --global gulp-cli

安装windows build tools:

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

安装node-gyp

npm install -g node-gyp

上面安装的一大堆东西,看似没无关,其实他们大都是用来编译原生nodejs插件的, nodejs的原生插件不是基于2进制分发的,是源码分发的,需要开发者自己编译; 下载vscode的源码; 用管理员的方式打开powershell,不是管理员身份不行

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

yarn watch

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

Finished compilation with 0 errors after

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

.\scripts\code.bat

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

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

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

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

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

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都和你下载的发行版是不一样的)

如果要调试主进程的话,可以看下图,直接在主进程的代码里下断点即可

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • vscode源码分析【二】程序的启动逻辑,第一个窗口是如何创建的

    electron是分主进程和渲染进程的; 渲染进程是主进程启动的; ./out/main.js显然这就是主进程的入口程序; 确实不假 但别着急去分析这个...

    liulun
  • 自己动手用electron+vue开发博客园文章编辑器客户端【一】

    其实第一个版本已经很好了,不知足,后来自己又做了兼容markdown的,结果用来用去,发现不是自己想要的

    liulun
  • ASP.NET Core教程【三】实体字段属性、链接标签、并发数据异常、文件上传及读取

    前文索引: ASP.NET Core教程【二】从保存数据看Razor Page的特有属性与服务端验证 ASP.NET Core教程【一】关于Razor Page...

    liulun
  • Electron打包应用

    剑行者
  • 利用Electron把Web项目打包成桌面应用

    1.Electron是基于Node.js开发的,第一步当然要安装node盒npm了,就不多说了。

    xferris
  • 18.3.10日报

    1,修复electron模式下,菜单可能创建失败,以及菜单click事件无法响应的bug

    龙泉寺扫地僧
  • 使用electron开发桌面级小程序自动部署系统

    支持部署小程序开发者工具的坑,接下来我将此次开发过程的思考和问题进行总结,从多个角度来介绍本项目。

    李文杨
  • electron 将pc端(vue)页面打包为桌面端应用

    版权声明:本文为博主原创文章,未经博主允许不得转载。 ...

    j_bleach
  • electron桌面应用开发(七)-electron-vue基本概念

    今天想继续写electron,在准备素材做实验的时候,发现基本概念太薄弱了,对工程的目录作用和基本运行逻辑都不是很熟,导致做起实验举步维艰,所以还是需要加强下基...

    efonfighting
  • 【独家干货】可穿戴技术革命

    本文共5900字,建议阅读时间12分钟 本讲座选自清华电子系校友、“千人计划”创业人才陈凯在清华大学数据科学研究院、清华大学医学院与中国医院协会疾病与健康管理专...

    数据派THU

扫码关注云+社区

领取腾讯云代金券