Electron 中如何生成latest配置文件


前言

构建会生成 latest.ymllatest-mac.yml:

version: 4.6.0
files:
  - url: ElectronReact-Setup-4.6.0.exe
    sha512: UoPWOaeBKiJU63oPk+e9mTatycoGTHAuI3sEr98NX0zboPvuRSt6uytVMe4yfqwOR/zCJX8crw3ncDmKMfKAag==
path: ElectronReact-Setup-4.6.0.exe
sha512: UoPWOaeBKiJU63oPk+e9mTatycoGTHAuI3sEr98NX0zboPvuRSt6uytVMe4yfqwOR/zCJX8crw3ncDmKMfKAag==
releaseDate: '2024-01-03T17:00:26.196Z'

什么时候生成

这里有 bug, 不知道为啥会重复塞入 info.files, 需要做个去重操作:

existingTask.info.files.push(...task.info.files);

// 修改一下
const ids = existingTask.info.files.map((item) => item.url);
task.info.files = task.info.files.filter((item) => !ids.includes(item.url));

existingTask.info.files.push(...task.info.files);

files 是如何计算的?

有的时候, files 会重复。感觉 mac 下的生成和 win 不同, mac 会多一点内容:

version: 4.6.0
files:
  - url: ElectronReact-4.6.0-arm64-mac.zip
    sha512: 3FPsFrxc7MIrXUT1FYntCA4OxWge4flEm6Y/+GJ2Cz1vH9XX1Y1AnmlhB+WIh8+sY0cZSXIYkR+kk2aRO3F3fA==
    size: 88808442
  - url: ElectronReact-4.6.0-mac.zip
    sha512: jOGpyAn/3mMYQ5ABHtLBPA5OhbbjudZOn3Tb2sPZHJf9jzMb7BDM5qkBbMiQHFrdeabbQ3ruXg8X7b65J8LNJw==
    size: 92779422
path: ElectronReact-4.6.0-arm64-mac.zip
sha512: 3FPsFrxc7MIrXUT1FYntCA4OxWge4flEm6Y/+GJ2Cz1vH9XX1Y1AnmlhB+WIh8+sY0cZSXIYkR+kk2aRO3F3fA==
releaseDate: '2024-01-10T09:46:12.331Z'

为什么会这样

如果开启了 generateUpdatesFilesForAllChannels, 那么输出的几个 -latest.yml 文件,就会有多余的内容。这应该是个 bug。

只是使用而言,没有关系。