统信+麒麟arm架构打包electron踩坑记录

446 阅读2分钟

问题1:npm安装超时

统信项目npm安装时有时第三方依赖包会跳过本地的npm源代理,去官方下,由于无法访问导致install超时,失败

可以通过配置本机代理,翻墙解决,如果找不到linux的翻墙软件,那么通过其他电脑进行翻墙,然后将翻墙后电脑的代理地址暴露出来

如下

export https_proxy=172.xxx.xxx.xxx:xxxx

http_proxy=172.xxx.xxx.xxx:xxxx

all_proxy=socks5://172.xxx.xxx.xxx:xxxx

将该代理在统信终端中允许,该窗口就可以访问npm官方地址了,npm install没问题

问题2:electron-builder 安装报错

• application Linux category is set to default "Utility" reason=linux.category is not set and cannot map from macOS docs=<https://www.electron.build/configuration/linux>

⨯ cannot execute cause=exit status 1

errorOut=/home/hht/.cache/electron-builder/fpm/fpm-1.9.3-2.3.1-linux-x86/lib/ruby/bin/ruby:行6: /home/hht/.cache/electron-builder/fpm/fpm-1.9.3-2.3.1-linux-x86/lib/ruby/bin.real/ruby:无法执行二进制文件: 可执行文件格式错误

00c9fbe0a2c6dfd422420fe53fd63675.png 该问题是因为electron-builder引用的fpm模块默认x86_64架构,没有arm架构的包,需要自行下载

可以从系统源中安装ruby,然后使用gem来安装fpm,然后设置全局变量,使用系统fpm具体操作方法如下:
1.sudo apt update

2.sudo apt innstall ruby -y

3.ruby -v 
查看是否安装成功ruby

4.sudo gem install fpm
稍等就会安装成功fpm

我在过程中报了dotenv问题报错

执行 
sudo gem install dotenv -v 2.8.1
将"export USE_SYSTEM_FPM="true""配置到环境变量
    sudo vim /etc/profile   打 开配置文件

    键盘shift+i     打开编辑模式,然后添加export USE_SYSTEM_FPM="true"

    键盘Esc         退出编辑

    键盘:wq        保存文件,退出vim

    source/etc/profile   使环境变量生效
在packjson 执行命令中 添加 export USE_SYSTEM_FPM=true
 "scripts": {
    "start": "node webpack/dev.runner.js",
    "build:win": "node webpack/pack.builder.js && electron-builder --win",
    "build:dir": "node webpack/pack.builder.js && electron-builder --dir",
    "build:mac": "node webpack/pack.builder.js && electron-builder --mac",
    "build:linux": "export USE_SYSTEM_FPM=true node webpack/pack.builder.js && electron-builder --linux",
    "electron:generate-icons": "electron-icon-builder --input=./static/icon.png --output=build --flatten"
 }
执行对应npm 命令 例如在我的项目中,执行 npm run build:linux