程序分发
应用部署
为了使用 Electron 部署你的应用程序,你存放应用程序的文件夹必须叫做 app, 并且需要放在 Electron 的 资源文件夹下
(在 macOS 中是指 Electron.app/Contents/Resources/ ,在 Linux 和 Windows 中是指 resources/) 就像这样:
在 macOS 中:
electron/Electron.app/Contents/Resources/app/
├── package.json
├── main.js
└── index.html
在 Windows 和 Linux 中:
electron/resources/app/
├── package.json
├── main.js
└── index.html
然后运行 Electron.app (或者 Linux 中的 electron ,Windows 中的 electron.exe ),接着 Electron 就会以你的应用程
序的方式启动, electron 文件夹将被部署并可以分发给最终的使用者。
Exe图标信息更换
对于exe的图标的在windows平台上更换工具使用rcedit,rcedit能够修改exe的图标资源,同时可以设置产品信息。
在开发阶段使用命令安装rcedit的node组件:
npm install rcedit -dev
事先准备好icon图标,并且在拥有rcedit的node组件目录下,可以用node执行如下的示例脚本,将图标、产品信息等参数进行修改,生成新的exe程序。
var nodercedit = require('rcedit');
var path = require('path');
var options={
'version-string':{
CompanyName:'erayt Inc.',//公司名称
ProductName:'Titan',//产品名称
OriginalFilename:'Titan.exe',//原始文件名
FileDescription:'HTML5 Titan For Windows',//文件描述
LegalCopyright:'Copyright © 2015-2016 Titan project'//版权
},
'file-version':'1.5.0',
'product-version':'1.5.0',
'icon':path.join(logoPath,'logo.ico')//更换的图标路径
};
nodercedit(path.join(modulePath,'electron.exe'), options, function(error)
{
if(error)
console.log(error);
});
应用打包
windows路径长度限制
为舒缓 Windows 下路径260字符长度限制的问题issues, 也略对 require 加速以及简单隐匿你的源代码,你可以通过极小的源
代码改动将你的应用打包成 asar。
ASAR
由于开发中所使用的node的组件包,经常由于路径太长,造成了拷贝和删除发生错误,不利于软件的分发和安装,除了通过拷贝所有的资源文件来分发你的应用程序之外,你可以通过打包你的应用程序为一个 asar 库文件以避免暴露你的源代码,所以提供了asar这个node组件对开发者的文件夹进行统一打包成.asar后缀的tar包。
为了使用一个 asar 库文件代替 app 文件夹,你需要修改这个库文件的名字为 app.asar , 然后将其放到 Electron 的资源文件夹下,然后 Electron 就会试图读取这个库文件并从中启动。 如下所示:
electron/resources/
└── app.asar
- 安装asar
npm install -g asar
- asar命令选项
asar --help
Usage: asar [options] [command]
Commands:
pack|p <dir> <output>
create asar archive
list|l <archive>
list files of asar archive
extract-file|ef <archive> <filename>
extract one file from archive
extract|e <archive> <dest>
extract archive
pack:其中pack参数是打包的命令选项,后面参数是需要打包的文件夹和输出的压缩文件名称(后缀为.asar)
list:枚举压缩文件所有的文件,参数为压缩文件名称。
extract-file:从压缩文件中解压一个文件出来,参数为压缩文件名称和需要解压的文件名
extract:从压缩文件中解压出所有的文件到目标文件夹中,参数为压缩文件名称和输出文件夹名称
asar打包应用
在electron的resources文件夹目录下,本来有electron.asar文件,需要将应用所在的目录打包成app.asar文件,使用如下脚本,可以将app文件夹打包成app.asar,同时可以忽略打包的文件或者文件夹,名称为app.asar.unpacked,最后将app.asar拷贝到electron的resources文件夹目录下,目录如下:
electron/resources/
├── electron.asar
└── app.asar
如果存在app.asar.unpacked文件夹,也拷贝到electron的resources文件夹目录下,目录如下:
electron/resources/
├── electron.asar
├── app.asar
└── app.asar.unpacked
打包示例:
var asar = require('asar');
var path = require('path');
var src = path.join(__dirname,'..');//应用文件夹
var dest = path.join(__dirname,'..','..','app.asar');//输出文件路径
asar.createPackageWithOptions(src, dest,{
dot:false,//排除隐藏文件
unpackDir:"static" //不进行打包的文件夹,一般为图标等静态文件
,unpack:'config.js' //不进行打包的文件名
}, function() {
console.log('done.');
});