如何在国产银河麒麟系统Mips架构上离线安装electron

最近在国产银河麒麟系统上开发一个 im 桌面应用,采用 electron+vue3+vite 技术栈,在安装 electron 过程中发现在银河麒麟 mips 架构上无法安装 electron,因为 electron 官方并没有提供 mips 架构的包,求助龙芯开源社区采用离线安装 electron 才解决这个问题。

正常安装报错

正常安装 electron,执行yarn add electron@10.1.0 -D因为官网不存在这个系统架构的包所以会报错

下载离线安装包

龙芯开源社区上下载 electron_v10.1.0_kylin_v10(mips 版本),后面要用到

修改源码

这时候打开 node_modules/electron/install.js
找到下载 electron 的地方,如下

// downloads if not cached
downloadArtifact({
  version,
  artifactName: "electron",
  force: process.env.force_no_cache === "true",
  cacheRoot: process.env.electron_config_cache,
  platform: process.env.npm_config_platform || process.platform,
  arch: process.env.npm_config_arch || process.arch,
})
  .then(extractFile)
  .catch((err) => {
    console.error(err.stack);
    process.exit(1);
  });

将上述代码注释掉,添加如下代码

// downloads if not cached
extractFile("electron-v10.1.0-linux-mips64el.zip");
// downloadArtifact({
//   version,
//   artifactName: "electron",
//   force: process.env.force_no_cache === "true",
//   cacheRoot: process.env.electron_config_cache,
//   platform: process.env.npm_config_platform || process.platform,
//   arch: process.env.npm_config_arch || process.arch,
// })
//   .then(extractFile)
//   .catch((err) => {
//     console.error(err.stack);
//     process.exit(1);
//   });

重新安装

将下载的离线包解压,并重新压缩成 zip 包,重命名为 electron-v10.1.0-linux-mips64el.zip
将重命名的 zip 包放到 node_modules/electron/ 目录下,执行安装命令

cd node_modules/electron
node install.js

至此 electron 离线安装完成

参考文章:

  1. 银河麒麟桌面操作系统 V10electron 应用开发者指南.pdf