gpt4 book ai didi

visual-studio-code - 如何确定当前和 future 的 Electron 版本)vscode qt 扩展构建时间

转载 作者:行者123 更新时间:2023-12-03 12:28:22 25 4
gpt4 key购买 nike

我正在合作开发一个使用本地模块(@serialport)的 vscode 扩展,该模块需要为每个平台/Electron 版本组合包含/预编译。

如果我们只包含当前版本,vscode 更新 Electron 版本时经常会中断。一些平台可以自然地重新编译,其他平台只能在(非常)长时间安装相当复杂的工具链之后,最终用户不需要 IMO。

所以我们想包括相关的预构建,
为此,我们需要及时展望...


我正在寻找一种可靠的方法来确定 vscode 使用的 Electron 版本
- 当前版本
- 以及 future (内部)版本
- 此外,最好包含以前的版本以实现向后兼容性

我发现 master/.yarnrc有当前(或下一个即将到来的)版本

  • 今天是 4.2.7
  • vscode 当前版本使用 4.2.5
  • 可以从版本历史中读取以前的版本
    master/.yarnrc
  • 但是 future /内幕版本呢?
    以编程方式确定的好方法/位置是什么?即哪个分支具有内部人员版本?

  • 基于以下提示和更多探索的可能答案:
  • 下一个版本在 master ..microsoft/vscode/blob/.yarnrc
  • 版本 1.36.1 位于 ..microsoft/vscode/blob/1.36.1/.yarnrc
  • x.y.z 版本位于 ..microsoft/vscode/blob/x.y.z/.yarnrc

  • 这只留下中间版本/标签被发现。

    预期的方法:
  • 在构建期间收集相关的 Electron 版本,即“3.1.8”、“4.2.5”、“6.0.0-beta.0”
  • 使用 node-abi 确定这些版本使用的 ABIvar getAbi = require('node-abi').getAbi;getAbi('$version','electron')
  • 使用 prebuild-install 下载相关的原生 prebuilds 绑定(bind),并将这些作为扩展的一部分.\node_modules\.bin\prebuild-install.cmd --runtime electron --target $version --arch $arch --platform $platform --tag-prefix @serialport/bindings@
  • 将所有 ABI-arch-platform 组合的绑定(bind)文件复制到一个文件夹中,并将其包含在 vscode 扩展包中
  • 在加载时,判断vscode/electron运行实例的ABI版本,从ABI/platform文件夹
  • 动态加载模块

    替代/附加方法:
    - 作为最后的努力,代码可以尝试即时下载当前平台的预构建绑定(bind)文件,但这可能会遇到权限/恶意软件扫描程序问题,因为这实际上是从外部下载可执行代码github复制。

    下载绑定(bind)的当前脚本代码:
    https://github.com/Josverl/pymakr-vsc/blob/fix/SerialMultiPlatform/scripts/mp-download.ps1

    最佳答案

    好的,所以反向逻辑表明:

  • 下一个版本在 master https://raw.githubusercontent.com/microsoft/vscode/master/.yarnrc
  • 版本 1.36.1 位于 https://raw.githubusercontent.com/microsoft/vscode/1.36.1/.yarnrc
  • x.y.z 版本位于 https://raw.githubusercontent.com/microsoft/vscode/x.y.z/.yarnrc

  • 这只留下中间版本/标签被发现。

    关于visual-studio-code - 如何确定当前和 future 的 Electron 版本)vscode qt 扩展构建时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57230169/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com