了解银河麒麟
如果不是使用国产化的人,可以不用了解,因为银河麒麟在我看来就是unbutu,包括命令和用法都是一样的。我所讲解的所有关于银河麒麟系统都是v10+arm64的,如果不是这个系统的可以绕路。
安装electron
electron是一款构建跨平台桌面应用程序的开源库,主要的内容部分是html+css+js。那么我们就涉及到了web的应用。大家可以理解它是一个iframe或者是一个微信小程序(样式定义+api得到数据)。我现在讲的这系列是例如iframe的,如果有时间我会慢慢的给大家讲用vue3或者react来搭建的electron。
安装node和npm
node 版本尽量使用 12+
npm 版本 6.3+
源设置为淘宝:npm config set registry https://registry.npm.taobao.org
这个如果不会的话,先去学习一下前端再看。
electron下载并使用
$ git clone https://github.com/electron/electron-quick-start
$ cd electron-quick-start
$ git checkout remotes/origin/10-x-y
在线安装及其依赖包
$ npm install
如果出现安装失败,就采取离线方式进行安装,放在electron-quick-start上一层即可
$ cd
$ wget https://registry.npmmirror.com/-/binary/electron/v10.1.5/electron-v10.1.5-linux-arm64.zip
$ cd electron-quick-start
$ npm install
当出现>node install.js的时候停止,对install.js进行修改
$ vi 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.5-linux-arm64.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); //});
然后将下载的安装包拷贝到electron-quick-start/node_modules/electron,执行install命令
$ cp ~/electron-v10.1.5-linux-arm64.zip node_modules/electron/
$ cd node_modules/electron/
$ node install.js
直接启动项目
$ cd ~/electron-quick-start
$ npm start
这里需要注意的是,开发的时候使用root用户,这里必须是在桌面中使用其他用户。
弹出hello world!就表示成功。
打包环节(应该是最麻烦最让人无语的地方)
打包必须符合银河麒麟V10软件上架规范的deb包,我们暂时先使用electron-builder工具来进行打包,以后有时间我会给大家讲解electron-packager和 electron-installer-debian 工具进行打包。
安装electron-builder
$ npm install electron-builder@20.0.0 --save-dev
我下了的20.0.0版本,如果你的安装失败,应该是两方面引起的:
(1) node版本太低了。
(2) electron-builder版本太高了。
我的解决思路是哪个方便就来哪个,比如你有nvm管理,那你就提高node版本,但是不要提高太多,符合就可以。
添加打包命令
"scripts": {
"start": "electron .",
"builder": "electron-builder"
},
"build": {
"productName": "electron-quick-start",
"asar": "false",
"appId": "electron-quick-start",
"directories": {
"output": "dist"
},
"linux": {
"icon": "icons",
"category": "Education",
"target": {
"target": "deb",
"arch": [
"arm64"
]
}
}
},
具体的参数自己去百度。
编写打包者信息
如果编写打包者信息就会报错,这个是在别的文章下查找到的。
"author": {
"name": "Wu Zhaohui",
"email": "wuzhaohui@kylinos.cn"
},
安装ruby和fpm
由于electron-builder需要使用fpm,但是fpm在arm64下没有架构包,只能我们自己想办法。
安装rvm和ruby及fpm
我们正常安装ruby最高版本是2.3,那么我们在arm64下就无法安装fpm,安装fpm版本小于11的时候出现关联json的错误,非常难以解决,如果fpm版本高于11,就必须ruby最低版本2.6。你说气人不气人。
1.导入密钥
gpg --keyserver hkp://pgp.mit.edu --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
2.CA证书
apt install ca-certificates
3.修改hosts
vim /etc/hosts
4.安装rvm
# 安装稳定版
curl -L https://get.rvm.io | bash -s stable
5.rvm全局,如果项目是持续性的就修改profile
vi /etc/profile
添加一个rvm的全局
export PATH="$PATH:/usr/local/rvm/bin"
6.查看ruby版本
rvm list known
7.安装ruby,我是选择的2.6
rvm install ruby-2.6
8.安装fpm
sudo gem install fpm
到这里软件部分已经完结,剩余部分下期再写,手底下小孩们遇到问题,必须去帮助解决了!十分不好意思。