VSCode源码自定义笔记-编译和打包
2019-07-26 本文已影响0人
黑山老雕
编译和打包
- 首先按照 https://github.com/Microsoft/vscode/wiki/How-to-Contribute#prerequisites 的方法准备好前提条件。
- 运行 yarn
- 如果想运行,按照文档中说明的,运行 .\scripts\code.bat 就可以。经测试,不需要先进行 yarn watch.
- 打包方法: yarn run gulp vscode-win32-x64-archive,打包后生成的包在 .build\win32-x64\archive\VSCode-win32-x64.zip , 这种方法目前看似乎是从某个文件夹直接压缩。在这个之前,需要先做 yarn的动作。
- 另一种方法: yarn run gulp vscode-win32-x64-min, 打包后,会在 vscode 当前目录的上一级生成目录VSCode-win32-x64,带 min 和不带 min 的编译方法相比,min对于其中的js文件做过体积简化。我们编译应该用带min的方式来编译。
- archive的方法是否可以打包带min的生成结果,还有待研究。
其他
- 运行命令 yarn run 可以列出所有可以执行的task。而这些task都是在 package.json里面定义的。Yarn就是一个包管理的工具
- 运行命令 yarn run gulp --tasks 可以列出所有可用的gulp任务,这些任务都是在gulpfile.js中定义的
- 在调试模式下,运行 Gulp Build,可以命中 gulpfile.js中的断点。可以用来研究gulp任务是如何定义的。
- 从package.json中可以看到yarn watch其实就是gulp watch --max_old_space_size=4095,所以它应该等同于yarn run gulp watch
- yarn run gulp 的各种选项都能编出不同的目标,比如 vscode-win32-x64 和 vscode-linux-x64-min。具体这些目标之间有什么差别,与 archive 的方式有什么关联,后续还需要深入研究。
- 查看 scripts下的code.bat命令,它其实就是执行一个 Electron的exe,然后参数指向 VSCode逻辑所在的文件夹。所以,不管上面build的什么目标,只要编译出来的folder有main.js,应该都可以用 Electron.exe <folder> 来运行起来。
- 曾经碰到错误:yarn install failed :vscode-ripgrep: Command failed.
发现是以下的文件损坏:ripgrep-0.10.0-pcre-win32-x64.zip 的文件损坏, 把这个路径下的zip删掉以后再运行yarn就正常了。C:\Users\zzp\AppData\Local\Temp\vscode-ripgrep-cache-1.2.4