0.基础环境
类别:笔记本
型号:中国长城 NF14C
硬件平台:飞腾处理器(ArmV8 指令集)
系统:银河麒麟操作系统 V10 SP1(2203)
关键词:
信创,麒麟系统,linux,c++,c,飞腾,arm,electron,npm,nvm,nodejs
1.背景
目前,为了支持国产软件、硬件平台,在选择跨平台技术时,主要可能的选择是QT、基于web技术的electron等。特别是electron使得前端人员也可以很好的进行跨一台的软件开发,无论是打包成deb,还是exe都通过electron-builder做了很好的支持。但在实际的实践活动中,在飞腾ARM平台打包时,会出现错误。本文以electron-egg 3.0为打包案例,为大家提供一个可以参考的electron在麒麟系统和飞腾处理器下展现一个较为完整的教程。
2.nodejs多版本管理
考虑到nodejs升级较快,不同开发人员可能依赖的node版本不一致。我们将使用nvm-cli来进行版本管理,可以根据工程需要切换版本。
项目主页:https://github.com/nvm-sh/nvm
2.1 官方用法举例
$ nvm use 16
Now using node v16.9.1 (npm v7.21.1)
$ node -v
v16.9.1
$ nvm use 14
Now using node v14.18.0 (npm v6.14.15)
$ node -v
v14.18.0
$ nvm install 12
Now using node v12.22.6 (npm v6.14.5)
$ node -v
v12.22.6
2.2 安装
1.执行安装脚本安装nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
或者()
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
2.安装并切换node
nvm install 18 #要安装的版本,可以指定18.5.0,只写18会拉18系列的最新版本
nvm use 18 #将node切换至需要的版本
2.3 检测
node -v
2.4 安装一些全局组件
sudo apt-get install build-essential libefl-all-dev libxss-dev -y
npm install --location=global yarn #安装yarn,也可以直接在后续只用npm install,但yarn的机制更先进,后续就以yarn为主了。
npm install --location=global node-gyp #electron 需要这个组件
3. 运行electron-egg
假设你装了git,没有就自己准备一下。#sudo apt-get install git
3.1 electron-egg简介
一个入门简单、跨平台、企业级桌面软件开发框架。基于electron二次封装做了一些工作。
3.2 拉项目代码
git clone -b v3.0.1 https://gitee.com/dromara/electron-egg.git #v3.0.1为拉取指定版本,项目仓库中有此tag
3.3 运行项目
根据官方说明,前后端分别安装好依赖再运行
3.3.1 前端
1.安装依赖库
进入前端目录,执行
yarn install --registry=https://registry.npm.taobao.org #使用淘宝镜像加速
2.运行前端
yarn serve #这个具体是什么指令是pakcage.json中配好了,也可以在vscode中操作,这里不再说明。
运行成功后
3.4.1 后端
1.安装依赖库
进入后端目录,执行
yarn install --registry=https://registry.npm.taobao.org #使用淘宝镜像加速
运行后端
yarn dev #这个具体是什么指令是pakcage.json中配好了,也可以在vscode中操作,这里不再说明。
运行成功后,效果如下
3.4 打包项目
electron使用electron-builder组件进行打包,且工程中已经配置好了。我们直接打包即可。
yarn build-l-arm64 #选择arm64下的linux打包,输出为deb
这其中会遇到一些错误,本文提供解决办法如下。遇到了,就解决,解决后再重试打包。也可以先按下面解决好了再执行打包。
错误1:gyp ERR
主要原因可能是跨平台版本的软件包,没有对arm做好支持,所以使用下面的方式构建一下。
解决办法:
yarn install --build-from-resource
错误2:fpm格式不正确
原因是electron拉的fpm为x86下面的,而且github项目上没有arm版本。
解决办法(参考了官方的说明pdf与https://www.beekeeperstudio.io/blog/electron-apps-for-arm-and...):
sudo apt update
sudo apt install ruby ruby-dev -y
sudo gem install fpm
cd ~/.cache/electron-builder/fpm/fpm-1.9.3-2.3.1-linux-X86_64/ #版本有可能不同,根据实际情况更改
rm -rf fpm
ln -s /usr/local/bin/fpm fpm
4.成品展现
5.写在最后
在windows,哪怕是x86的linux下,一些问题也不会碰到。希望给大家在arm平台打包eletron应用有一点参考。
麒麟系统专栏:
地址一:https://segmentfault.com/blog/kylinos
邮箱:1179611323@qq.com
群:662512340
github:https://github.com/xiaohelong
twitter:https://twitter.com/xiaohelong
发行日志:
20230331 13:30 首发
20230401 10:27 增加gyp安装方式
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。