龙芯mips64el -适配electron及打包

该博客详细介绍了如何在龙芯UOS系统中,针对mips64el架构适配和运行Electron项目。首先,从指定网址下载Electron的mips64el版本并验证SHA256校验和。接着,创建预安装脚本来准备环境,并修改项目中的install.js以支持mips64el。通过这些步骤,成功运行Electron项目。对于打包,由于electron-builder不支持mips架构,因此使用electron-packager和electron-installers-debian生成deb安装包。整个过程涉及文件下载、脚本编写、项目配置和打包工具的定制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:内网机器,uos龙芯版 ,一开始把项目从外网考过去,运行 electron报错,后来发现

electron 没有mips架构的,只能自己改造了,直接干货(记得给打上哦):

1、从http://www.loongnix.org/index.php/Electron下载所需软件包,mips64el 建议使用4.1.3

别的版本不是太老,就是不支持

2、效验:sha256sum electron-v4.1.3-linux-mips64el.zip > SHASUMS256.txt-4.1.3

 如上修改sha文件,注意原来是两个空格,要改成一个加*

3、建一个脚本preinstall.sh ,代码如下:

#!/usr/bin/env bash
 
 # 在安装electron前的环境设置
 
 electron_path="$HOME/.cache/electron"
 if [ ! -d ${electron_path} ]; then
     mkdir -p ${electron_path}
 fi
 
 electron="electron-v4.1.3-linux-mips64el.zip"
 shasums="SHASUMS256.txt-4.1.3"
 
 if [ -f ${electron} -a -f  ${shasums} ];then
     cp ${electron} ${shasums} ${electron_path}
 else
     echo "${electron} and ${shasums} doesn't exists"
     exit 1
 fi
 
 echo "preinstall done"
 

将electron-v4.1.3-linux-mips64el.zip和SHASUMS256.txt-4.1.3放到~/.cache/electron/下,执行上面脚本,./preinstall.sh 

4、将electron-v4.1.3-linux-mips64el.zip 放入项目依赖安装的electron中(在外网装好,不用考虑平台)找到install.js文件,并按如下修改

// downloads if not cached
extractFile(0,'electron-v4.1.3-linux-mips64el.zip')
/*download({
  cache: process.env.electron_config_cache,
  version: version,
  platform: process.env.npm_config_platform,
  arch: process.env.npm_config_arch,
  strictSSL: process.env.npm_config_strict_ssl === 'true',
  force: process.env.force_no_cache === 'true',
  quiet: process.env.npm_config_loglevel === 'silent' || process.env.CI
}, extractFile)
*/

运行 ./install.js 重新生成 dist 目录即可

到此electron适配完成。

进入项目  npm run dev 配置好启动。

二、打包:electron-builder没有mips架构的,要使用electron-packager 进行打包

再使用 electron-installers-debian 生成deb安装包

1、http://doc.loongnix.cn/web/#/818?page_id=4332   在外网根据文档装好 electron-packager、electron-installers-debian  全局安装即可,要使用他们的npm仓库安装,到全局 node_modules 中找到 那两个,用u盘复制到内网龙芯机器,并设置软连接

 2、修改electron-packager , 根据需要修改版本号就行

修改electron-packager 指定版本号:修改 src/targets.js 
const buildVersions = {
  darwin: {
    arm64: '>= 11.0.0-beta.1'
  },
  linux: {
    arm64: '>= 1.8.0',
    mips64el: '^4.1.3'
  },
  mas: {
    arm64: '>= 11.0.0-beta.1'
  },
  win32: {
    arm64: '>= 6.0.8'
  }
}

 接下来就可以执行打包了

//生成可执行文件

electron-packager . CTYTHApp --electron-zip-dir=/home/casic/.cache/electron/ --platform linux --arch mips64el --out dist/

//根据可执行文件生成安装包 

electron-installer-debian --src dist/CTYTHApp-linux-mips64el/ --dest dist/installers/ --arch mips64el

依次执行

注意:CTYTHApp 要和package.json中配置的名字相同,否则会因找不到二进制文件生成安装包失败

龙芯 MIPS64EL 架构上运行或开发 Electron 应用是可行的,但需要注意一些限制和适配问题。以下是一些关键点和建议: 1. **Electron 版本选择** 龙芯 MIPS64EL 架构支持的 Electron 版本有限。根据已知信息,用户可以通过特定方法安装 mips64el 架构的 Electron 版本,包括 4.1.3、6.1.7 和 10.1.0。这些版本经过适配后可以在龙芯平台上运行 [^1]。对于较新的 Electron 版本,尤其是基于 LoongArch 架构的版本(如 Electron 8 及以上),需要确认是否已经支持龙芯平台 [^3]。 2. **Node.js 版本兼容性** Electron 的构建依赖于 Node.js。在尝试安装或构建 Electron 时,需要确保使用的 Node.js 版本与目标 Electron 版本兼容。例如,Electron 10 在某些情况下可能需要 Node.js 12 或更高版本 [^3]。 3. **安装与构建方法** 在龙芯 MIPS64EL 平台上安装 Electron 可以通过修改源码并重新编译的方式完成。对于某些版本(如 4.1.3、6.1.7 和 10.1.0),只需修改一行代码即可完成安装 [^1]。此外,用户也可以使用 `electron-packager` 工具进行打包,确保生成的应用适用于 mips64el 架构。 4. **打包 Electron 应用** 如果需要将 Electron 应用打包为 Debian 安装包,可以使用 `electron-installer-debian` 工具,并指定目标架构为 `mips64el`。例如: ```bash electron-installer-debian --src dist/CTYTHApp-linux-mips64el/ --dest dist/installers/ --arch mips64el ``` 这种方法可以确保生成的安装包适配龙芯平台 [^2]。 5. **开发环境搭建** 在龙芯 MIPS64EL 上搭建 Electron 开发环境时,需要确保安装了必要的构建工具和依赖库。这包括 Python、make、g++ 等工具链组件。此外,还需要确认 Electron 的 native 模块是否支持 mips64el 架构,必要时可能需要手动编译这些模块 [^3]。 6. **注意事项** - 由于龙芯平台的架构特殊性,部分 Electron 插件或第三方库可能尚未适配 mips64el,因此在开发过程中需要测试这些组件的兼容性。 - 随着时间推移,LoongArch 架构逐渐取代传统的 MIPS 架构,建议关注 Electron 社区对 LoongArch 的支持情况,以便在未来的开发中获得更好的兼容性和性能 [^3]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值