本篇文章主要是我进行国产系统信创化过程中实现 nwjs 客户端国产化中的总结,不足之处还望指出,各位道友请了。
下面我以 kylin 系统 amd 这个内核来写一下打包安装的过程,这两个内核的版本打包安装我都已经在国产麒麟系统 kylin 里面实现了打包安装。只是支持 arm 的 nwjs 版本下载链接我没有找到,用的是之前项目信创的一个 arm 版本文件。如果有知道支持 arm 内核的 nwjs 版本下载链接的道友,还望提供一下,在此先行谢过道友。

1、打包前的准备工作
1.1 准备前端包相关资源
我们在 /data/kaimo/app 数据盘 kaimo 文件夹下面新建 app 文件,里面放我们打包好的前端包以及配置文件,图片,以及配置文件里面需要的依赖

ApprKaimoWeb 这个就是我们的前端包

1.2 下载 nwjs 包
这里我们去官网下载 nwjs 支持 linux amd 版本的,以 0.60.0 为例
下载地址:https://dl.nwjs.io/v0.60.0/

下载完之后,解压到 kaimo 文件夹里面

1.3 编写打包脚本
在 kaimo 文件夹里面新建 build-deb-amd64.sh 脚本用来创建 deb 文件
bash
#!/bin/bash
# 此文件需要在国产化 linux destop 终端下执行,如银河麒麟
# 设置变量
APP_NAME="ApprKaimoWeb"
VERSION="1.0.0"
ARCH="amd64" # 如果是不同架构,这里修改,例如 amd64, armhf 等
# 基础路径
BASE_DIR="/data/kaimo"
APP_DIR="${BASE_DIR}"
DEB_DIR="${BASE_DIR}/ApprKaimoWeb-amd64"
# nwjs的包路径
NWJS_PATH="${APP_DIR}/nwjs-v0.60.0-linux-x64"
# nwjs的配置文件路径
PACKAGE_JSON_PATH="${APP_DIR}/app/package.json"
# 前端静态资源路径
STATIC_FILES_PATH="${APP_DIR}/app"
# 桌面文件路径
DESKTOP_FILE="${DEB_DIR}/usr/share/applications/${APP_NAME}.desktop"
ICON_PATH="${DEB_DIR}/usr/share/icons/hicolor/128x128/apps/${APP_NAME}.png"
# 目标安装路径改为 /data/kaimo/install
INSTALL_BASE="/data/kaimo/install"
INSTALL_DIR="${INSTALL_BASE}/${APP_NAME}"
# 创建 deb 文件夹结构
mkdir -p ${DEB_DIR}/DEBIAN
mkdir -p ${DEB_DIR}${INSTALL_DIR}/app
mkdir -p ${DEB_DIR}/usr/bin
mkdir -p ${DEB_DIR}/usr/share/applications
mkdir -p ${DEB_DIR}/usr/share/icons/hicolor/128x128/apps
# 复制 NW.js 文件和应用文件到相应目录
cp -r ${NWJS_PATH}/* ${DEB_DIR}${INSTALL_DIR}/
# 复制图标文件
cp ${APP_DIR}/app/icon.png ${ICON_PATH}
cp -r ${STATIC_FILES_PATH}/* ${DEB_DIR}${INSTALL_DIR}/app/
cp ${PACKAGE_JSON_PATH} ${DEB_DIR}${INSTALL_DIR}/app/
# 创建启动脚本
echo "#!/bin/bash
${INSTALL_DIR}/nw ${INSTALL_DIR}/app" > ${DEB_DIR}/usr/bin/${APP_NAME}
chmod +x ${DEB_DIR}/usr/bin/${APP_NAME}
# 创建桌面快捷方式
echo "[Desktop Entry]
Name=KAIMO测试客户端
Exec=/usr/bin/${APP_NAME}
Icon=/usr/share/icons/hicolor/128x128/apps/${APP_NAME}.png
Terminal=false
Type=Application
Categories=Utility;" > ${DESKTOP_FILE}
# 创建 control 文件
echo "Package: ${APP_NAME}
Version: ${VERSION}
Section: utils
Priority: optional
Architecture: ${ARCH}
Maintainer: kaimo313@foxmail.com
Description: Reserve and client NW.js Application" > ${DEB_DIR}/DEBIAN/control
# 打包 .deb 文件
dpkg-deb --build ${DEB_DIR}
# 提示完成
echo "创建deb成功:${APP_NAME}_${VERSION}_${ARCH}.deb"

2、在国产系统里面打包
第一步我们已经创建下载了打包需要的文件,下面我们开始进行打包
鼠标右击,打开终端

在 kaimo 的目录执行下面命令即可,就会在当前文件夹下面生成对应的 deb 文件
bash
sh ./build-deb-amd64.sh

如果有提示认证,选择允许即可

成功之后就会生成两个文件,一个是 deb 的包,一个是非 deb 的,到时我们安装的就是 deb 文件。

我们可以看一下非 deb 里面有啥,这些就是创建 deb 需要的文件结构,具体里面其他文件夹可以自己去看一下。

3、在国产系统里面安装
第二步里面我们成功生成了 deb 文件,下面就基于这个 deb 开始进行安装
在刚才打开的终端里面,我们输入下面安装命令
bash
sudo dpkg -i ./ApprKaimoWeb-arm64.deb
然后输入电脑密码,点击允许

安装好之后

我们右击刷新,就能看到安装文件夹了

进去可以看到在原来的 nwjs 包里面多了一个 app 的文件夹

而这个 app 里面就是我们 kaimo 文件夹里面准备的前端相关的资源

4、创建桌面快捷方式
然后我们去 usr/share/applications 文件夹里,就能找到我们的桌面文件了

然后右击文件,发送到桌面

我们在桌面右击快捷方式,选择属性

勾选属性只读,然后确定即可。

这样我们的安装就完成了

如果是 arm 内核的话,这个快捷方式有点不太一样,需要右击的时候,去权限找到执行勾选上允许以程序执行文件,然后关闭,在桌面右击刷新即可,其他方面也是一样的做法,安装过程需要使用 arm 的 nwjs 包,以及脚本修改一下内核。
