您的位置:

electronbuilder详解

一、简介

electronbuilder是一个可以将Electron应用程序打包为各种格式(Windows、Mac、Linux等)安装程序的开源工具。

electronbuilder是electron的插件之一,可以为各个平台自动构建安装包,无需运行特定的环境,对于初学者十分友好。

electronbuilder还支持代码签名和自动更新检查,可以帮助开发人员轻松发布和维护他们的应用。

二、使用方法

1、安装electron-builder

npm install electron-builder --save-dev

2、在package.json文件的scripts中添加以下代码:

"scripts": {
  "eb": "electron-builder"
}

3、配置electron-builder

在package.json文件中添加以下代码:

"build": {
  "appId": "com.example.app",
  "productName": "Example",
  "directories": {
    "output": "build"
  },
  "linux": {
    "target": [
      "deb",
      "rpm",
      "AppImage"
    ]
  },
  "win": {
    "target": [
      "nsis",
      "msi"
    ]
  },
  "mac": {
    "target": [
      "dmg",
      "pkg"
    ]
  }
}

其中,appId是应用的唯一标识符,productName是应用的名称,directories.output是构建输出目录,linux、win、mac是各个平台的构建选项。

三、自动更新

electron-builder支持自动更新,让用户可以及时获取最新的版本。首先需要在应用程序代码中添加以下代码:

const { autoUpdater } = require('electron-updater');
autoUpdater.checkForUpdatesAndNotify();

然后,需要将应用程序构建成允许自动更新的格式。在macOS上,需要将应用程序构建为.dmg或.pkg格式。在Windows上,需要将应用程序构建为.exe或.msi格式。

最后,为了让应用程序能够自动更新,需要在发布服务器上部署一个JSON文件,JSON文件中包含应用程序的版本和下载链接。然后在应用程序中添加以下代码:

const { autoUpdater } = require('electron-updater');
autoUpdater.setFeedURL({url: 'http://localhost:8080/update/'}).then(() => {
    autoUpdater.checkForUpdatesAndNotify();
});

其中,setFeedURL函数设置更新源URL,checkForUpdatesAndNotify函数检查更新。

四、代码签名

为了提高应用程序的安全性,需要使用代码签名。electron-builder支持使用各种类型的代码签名证书,包括Windows代码签名(Authenticode)、Mac代码签名以及Linux代码签名。

首先需要购买代码签名证书,然后在应用程序构建之前,需要在package.json文件中添加以下代码:

"win": {
  "certificateFile": "path/to/code-signing-certificate.pfx",
  "certificatePassword": "password",
  "signingHashAlgorithms": [
    "sha256"
  ]
},
"mac": {
  "identity": "Developer ID Application: Example, Inc. (XXXXXXXXXX)",
  "entitlements": "path/to/entitlements.plist",
  "entitlementsInherit": "path/to/entitlements.plist"
},
"linux": {
  "icon": "path/to/app-icon.png",
  "category": "Utility",
  "target": [
    "deb"
  ],
  "iconUrl": "https://example.com/icon.png"
}

其中,Windows通过certificateFile和certificatePassword来定义签名证书,Mac通过identity来定义签名证书,linux通过icon来定义应用程序的图标。

五、总结

electron-builder是一个非常好用的Electron应用程序打包工具,支持自动更新和代码签名,并且可以将应用程序构建为各种格式的安装程序。

使用electron-builder可以轻松发布和维护Electron应用程序,不论是初学者还是经验丰富的开发人员,都能够很快地上手。