我一直在对Chromium代码库进行一些更改,我想在VSCode中进行测试。要执行此操作,我必须基本上遵循构建链:Chromium -> Electron -> VSCode。我的主要目标是构建此自定义VSCode二进制文件以执行一些测试。
对于Chromium -> Electron部分,我设法通过将.patch
文件添加到patches/chromium
目录并将该.patch
文件的文件名添加到同一目录中的.patches
文件来执行它。
然而,对于Electron -> VSCode部分,我目前卡住了。我确实看了一下issues page of VSCode,我看到一些人提到了Electron二进制文件的“交换”来执行一些测试,但关于如何做到这一点的确切方法从未在Wiki pages或各种问题中提到过。
在执行yarn
之后,我确实在node_modules/electron/dist/
中找到了一个electron
二进制文件,但是用我的自定义Electron二进制文件替换该文件并不起作用,因为生成的code-oss
文件似乎仍然使用旧的原始Electron二进制文件。
类似地,在执行yarn watch
之后,.build/electron/
中有一个code-oss
文件,但是在执行scripts/code.sh
之前替换它也不起作用(它导致了关于V8二进制和快照之间版本不匹配的错误消息)。
我还尝试跟踪scripts/code.sh
file的执行,我最终在build/lib/electron.ts
file中的getElectron
函数。它似乎设置了一些配置值,并通过使用@vscode/gulp-electron
package下载Electron构建。也许有一种方法可以以某种方式覆盖此下载过程?
我在Ubuntu 20.04,AMD 64上执行此操作。我将感谢有关此问题的任何帮助。谢谢!
1条答案
按热度按时间dphi5xsq1#
事实证明,我已经在正确的方向上,但我被“V8版本不匹配”的错误信息误导了。
首先,按照official Electron build instructions构建Electron。
字符串
我没有运行的命令在官方说明页面的“打包”标题下。我最终也执行了这两个命令,因为它们会创建一个方便的ZIP文件供我们用途:
型
一个
dist.zip
文件将被创建在out/Release
目录中。用这个ZIP文件的内容替换.build/electron/
目录中的内容。另外,记住将主Electron二进制文件从electron
重命名为code-oss
。这种替换
.build/electron/
目录内容的方法很有效。我忽略的是我必须替换整个目录,而不仅仅是code-oss
文件(它只是主Electron二进制文件,但已重命名)。回想起来,这是有道理的,为什么“V8版本不匹配”错误被打印出来,但直到我花了更多的时间才为我点击。我还做了以下修改(基本上是注解掉对
getElectron
的调用),以确保构建脚本不会意外替换我的自定义Electron文件:型