四时宝库

程序员的知识宝库

electron入门-打包发布

前言

与传统的web开发不同的是,桌面应用需要打包分发。如何将electron代码打包成不同平台可安装运行的介质是我们开发electron应用必备的环节。

本节介绍打包的基础知识及操作步骤。

我们在上一节已经开发一个简单的应用,后续我们就针对这个应用来学习一下如何打包。

补充一点:如果大家在运行命令:

electron  .

存在找不到electron命令时,可能是没有全局安装electron导致的。一般我们为了避免不同项目干扰,把electron安装在项目中,因此可以在package.json中增加一个脚本命令:

"scripts": {
     "dev": "electron ."
}

然后运行:

npm run dev

npm run 命令会自动将本项目的.\node_modules\.bin\添加到环境中,本地安装的electron可运行脚本就在此目录下。

打包

electron提供多种方式完成打包工作。在其官网上提供两种:electron-packager和electron-builder。简而言之electron-packager把项目打包成一个文件夹,而electron-builder可以打包成可安装文件。

为简单起见,我们介绍electron-builder。

我们把前一节的项目目录改为demo2.

要使用这个工具,先要安装下这个工具。根据官网建议,我们使用yarn来安装它:

yarn add electron-builder --dev

我们知道electron可以发布成多平台的桌面应用,不同的平台需要提供不同的配置信息。一般这个配置信息可以使用单独的文件来描述,也可以直接在package.json中提供。

在package.json提供的配置信息是在顶级"build":{}定义的。

下面给出具体的在windows平台上打包例子:

  "build": {
    "appId": "beer.u2.demo2",
    "copyright": "u2",
    "productName": "demo2",
    "dmg": {
      "background": "assets/background.png",
      "window": {
        "x": 100,
        "y": 100,
        "width": 500,
        "height": 300
      }
    },
    "win": {
      "icon": "assets/icon.ico"
    }
  }

在package.json的"scripts"下增加几个新的脚本命令:

"pack": "electron-builder --dir",
 "dist": "electron-builder",

在终端窗口中执行:

yarn dist

我们在demo2/dist目录下就会生成一个安装文件:demo Setup 1.0.0.exe

运行这个安装文件就可以把我们这个应用部署到本机了。

打包分析

你不知道的Electron (二)-了解Electron打包 - 知乎中,对打包进行比较深入的分析。这里也简单概述一下:

  • 打包后文件大小

总体而言,electron打包后的文件会有100M左右大小,我们这次打包后就达110M,还是很大的。

  • 影响因素

在dist/win-unpackged/resources/下有一个app.asar文件,解压后可以看到被打包的文件:

.
├── CHANGELOG.md
├── README.md
├── core
├── electron
├── icon
├── node_modules
├── package.json
├── test
├── view
└── webpack.config.js

node_modules包显然是最大影响因素,这边目录会把package.json中dependencies依赖包都打包进来。

我们看到electron.exe文件大概有60M多,这个是electron针对不同平台提供的可执行文件。

我们总结下,打包后程序大小基本上就是由electron+依赖包+本身程序决定的。

  • 打包后程序运行逻辑

安装后程序运行是由electron调用app.asar中的package.json中main入口程序。因此在实际进行打包时,有可能需要修改这个入口,尤其是我们一般不会再原生js+html+css编程,而是利用vue、react等框架编程时,这个入口程序的位置在打包发布时会发生变化。我们后续介绍electron+vue编程时再说明。

小结

关于如何将electron打包发布到linux、mac,大家可以到官网上看相关资料,网上也有不少这方面的资料。

后续几节我们重点介绍electron本身的编程知识,前端展示使用的原生的js+css+html完成。等我们基本掌握electron基本编程后,再重点介绍基于vue开发electron相关知识。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接