背景:内网机器,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中配置的名字相同,否则会因找不到二进制文件生成安装包失败