最近利用Electron来创建跨桌面应用的趋势似乎很火。看了几个用Electron开发的应用,这些应用在windows下面的安装方式,都是类似一个绿色软件的安装方法,下载.zip->解压到相应目录->进入文件夹点击exe使用。这种安装方法有两个缺点,第一,更新繁琐,用户需要删除之前的软件目录,下载新的软件,在跑一遍解压流程,不然电脑里面就会出现两个软件,不好区分。第二,安装之后无法自动创建快捷方式,需要手动进入目录右键创建。第三,没有自定的图标跟名称,没有那么酷了有木有!

之前我的文章Electron实战:创建基于ELectron开发的window应用安装包 已经解决了以上问题,但是过程比较复杂繁琐,适合喜欢折腾的人。

最近发现了一个打包利器 grunt-electron-installer ,这是一个利用Squirrel的打包插件,不仅解决了传统打包方式的缺点,比起我前一篇文章推荐的打包方法,使用起来实在是方便很多,简直解放了生产力!所以忍不住安利给大家。

以下是流程

1.常规打包

把我们开发好的应用放进electron文件夹里面,图中是kaka.exe ,原来为electron.exe,是使用Resource Hacker改了名字跟图标的,具体方法查看 Electron实战:创建基于ELectron开发的window应用安装包 中的 “创建自定义安装包”,部分,具体不再赘述。

2.安装grunt-electron-installer

Npm大法好,在项目目录里面输入

npm install --save-dev grunt-electron-installer

3.配置

在项目根目录新建Gruntfile.js,我们需要在这里进行grunt.config的配置,配置规则基本nuget打包工作的Package.nuspec相同配置规则是:

配置字段

是否必填

描述

appDirectory

Electron App 的目录

outputDirectory

最后输出exe的目录

loadingGif

安装过程中的加载图片

authors

作者

owners

所有者

exe

App入口的exe ,如果改了名字的需要填写

description

App描述

version

版本号

title

标题,默认是App 名称

certificateFile

证书文件

certificatePassword

加密密钥

signWithParams

传递给signtool签名工具的参数,如果软件不签名,可以忽略这个。

iconUrl

Icon链接,需要自定义icon的时候需要

setupIcon

Setup.exe 的icon

noMsi

不需要创建.msi安装文件

remoteReleases

更新链接,如果填写,当链接中有新版本,会自动下载安装。

以下是我的Gruntfile.js配置:

4.监听Squirrel事件

监听的目的主要是为了在安装之后自动创建App快捷方式,还有为之后的自动更新做准备。因为我们的.exe会在安装之后自动打开程序,所以我在程序的入口main.js,添加sqruieel事件的监听就好了,我顺便把程序卸载时,删除快捷方式的监听事件也写了进去。还有程序的更新和删除事件监听。如下图:

5.开始创建安装包

在根目录运行 grunt  ,

如果第二步中,没有把任务设置为默认,需要输入 grunt create-windows-installer 。

6.更新

最新的App打包方法同上,唯一的不同就是在第二步的配置中,修改Version配置字段,写入最新版本号,发布打包之后的setup.exe,用户通过执行setip.exe安装,程序会自动删除之前的应用,安装最新版本。

使用Grunt 插件打包Electron Windows应用的更多相关文章

  1. 【Electron】在 WSL2 中 打包 electron Linux 版本

    [Electron]在 WSL2 中 打包 electron Linux 版本. 安装 WSL 我使用的是 Ubuntu 20.04.4 LTS 的版本. 安装 WSL 文档地址:https://do ...

  2. 快速开发Grunt插件----压缩js模板

    前言 Grunt是一款前端构建工具,帮助我们自动化搭建前端工程.它可以实现自动对js.css.html文件的合并.压缩等一些列操作.Grunt有很多插件,每一款插件实现某个功能,你可以通过npm命名去 ...

  3. node.js安装及grunt插件,如何进行脚本压缩

    http://gruntjs.com/pluginshttp://gruntjs.com/getting-startedhttp://gruntjs.com/configuring-tasks#glo ...

  4. chrome下的Grunt插件断点调试——基于node-inspector

    之前调试grunt插件时,都是通过人肉打log来调试.不仅效率低,而且会产生一堆无用的代码.于是简单google了下node断点调试的方法,总结了下. 借助node-inspector,我们可以通过C ...

  5. Grunt 插件使用汇总

    最近使用了很多 Grunt 插件,这里把使用 Grunt 中涉及的从开发.代码检查.单元测试.E2E 测试,直到发布所涉及的插件,做一个比较完全的汇总. 环境搭建 1. 创建 Web 前端开发环境 2 ...

  6. 如何开发 Grunt 插件

    创建 grunt 插件 准备工作:(node/npm/git 安装,在此不做赘述) yeoman generator 可以自动生成一个插件模板. 安装 yo npm install -g yo 安装 ...

  7. 微软开放技术发布开源 Jenkins 插件以将 Windows Azure Blob 服务用的开作存储库

     发布于 2014-02-10 作者 陈 忠岳 持续集成 (CI) 的历史源远流长, 其宗旨在于软件团队在敏捷环境中不断将他们的工作整合为持续构建.管理 CI 进程的工具已存在一段时间.过去几年中 ...

  8. 详解Grunt插件之LiveReload实现页面自动刷新(两种方案)

    http://www.jb51.net/article/70415.htm    含Grunt系列教程 这篇文章主要通过两种方案详解Grunt插件之LiveReload实现页面自动刷新,需要的朋友可以 ...

  9. grunt 插件

    一个简单的 grunt 插件, 作用是 把 css 文件中的  /images/  替换成指定的  url path, 以实现 图片 cdn 路劲改造 插件项目文件结构 grunt-contrib-s ...

随机推荐

  1. java mail使用qq邮箱发邮件的配置方法

    最近自己折腾了下Java中利用mai发送QQ邮件 1.QQ邮箱设置 1.1 进去QQ邮箱-->设置-->账号-->进行设置如下图 2.foxmail设置(由于我要利用它收邮件) 2. ...

  2. editor does not contain a main type的解决方案

    editor does not contain a main type的解决方案 今天用eclipse,当打算run一个带有main函数的class时,出现editor does not contai ...

  3. Shell脚本检测文件夹是否已被挂载的方法

    方法1: if grep -qs '/mnt/foo' /proc/mounts; then echo "It's mounted." else echo "It's n ...

  4. C++模板元编程(C++ template metaprogramming)

    实验平台:Win7,VS2013 Community,GCC 4.8.3(在线版) 所谓元编程就是编写直接生成或操纵程序的程序,C++ 模板给 C++ 语言提供了元编程的能力,模板使 C++ 编程变得 ...

  5. ie8的兼容

    1.IE8以下不支持getElementsByClassName方法//解决IE8之类不支持getElementsByClassNameif (!document.getElementsByClass ...

  6. 开始写Effective系列总结一些前端的心得

    确实是没有时间整理以及总结和发表自己的感慨.难得中秋银行的事情搞完了自己清闲3天,是时候总结一下从大公司做.NET PC 端网站的开发到现在做移动互联网的银行及政府微信公众号的开发的感触.当时自己的选 ...

  7. websphere性能调优之dump命令

    websphere性能调优之dump命令 基于WebSphere 构建的企业应用,时常会出现性能问题,在严重的情况下还会提示出内存溢出,这是一件很让人恼怒的事情.在WebSphere Applicat ...

  8. 备忘DES带向量的加密和解密与DES简单加密与解密

    package com.ego.util; import java.security.Key; import java.security.SecureRandom; import java.secur ...

  9. 高效能人士必知铁律--note

    偶然看到了<高效能人士 必知铁律>这本书,我比较少看成功学,但是这本书把很多著名的成功学书籍整理出来,有时会让你耳目一新,有些观点尽管是常识,但是却加深了你对它们的理解,比如: 只要在积极 ...

  10. hdu 1010 深搜+剪枝

    深度搜索 剪枝 还不是很理解 贴上众神代码 //http://blog.csdn.net/vsooda/article/details/7884772#include<iostream> ...