保姆向-基于Electron Builder的Tyrano引擎游戏打包方式
打包问题,是每一位Tyrano用户都不得不品尝的一个环节。(Tyrano Studio的导出会比Tyrano Builder好一点)

就是这样(
不过究其原因,是因为Tyrano在打包的时候,后台会下载electron,但是下载速度又很慢,往往几分钟才下不到几MB(原包约100MB),而且当下载时间过久的话则会下载失败,就会导致“导出”会一直转圈,但就是无法完成,因为导出需要Electron,但是Electron又下载失败了,就陷入了一个死循环。
这一问题并不能用VPN解决,至少我无法用VPN解决,即使是挂着
不过理论上只要下载好一次electron,后面就不用再下载第二次了,也就是不会再卡导出了。
不过也有人可能会提出提前下好Electron然后替换下载,不过实际上并没有什么用,他每次下载,会在C:\Users\zeroi\AppData\Local\Temp路径内生成一个名为“electron-download-随机后缀”的文件夹,随机后缀部位每次会随机一定长度的随机字符串,所以基本是无法提前替换的。如果是等下载开始后再替换也没有什么用,因为校验文件环节需要等下载完成才会开始,即使你提前替换了,他后台进度条没有下载完成,那依旧会继续下载,还是卡着的局面。
至于有没有其他解决方法,更换更好的VPN、更换旧版本Tyrano、让别人导出之类的都是方法,不过我们并不是来讨论这些解决方法的,这篇文章的主题就是让用户手动打包游戏。
另外,本文章不会介绍下文下载的都是上面东西,太过浪费口舌,想知道是什么的自己去搜索就好了。
1.下载Node.js
[!NOTE]
如果本地已有Node.js,即可跳过该步骤
首先打开Node.js的下载界面

此处选择长期支持版本即可,后选择Windows安装包(.msi)的64位进行下载即可。
下载过来以后双击msi程序,


此处可以将这一步的Add to PATH改为Entire feature will be installed on local hard drive。
其余的一路默认安装过来即可。
随后按下Win+R键,唤出运行窗口,输入cmd打开命令提示符,输入
1 | npm -v |
查看自己版本号,如果安装正确,应该将显示一串数字吗,这就是版本号了。

2.设置npm镜像源
镜像源是很有必要的,npm本身的下载链接都指向国外,下载速度十分之慢,不设置镜像源的话,下载十分缓慢,而且很容易失败。
还是一样打开命令提示符,随后输入
1 | npm install -g cnpm --registry=https://registry.npmmirror.com |
随后一个“/”开始旋转,等到安装成功的提醒出现后即可,然后输入
1 | cnpm -v |
进行检查,如果安装都正确,则会提示

3.Electron
安装
随后打开自己的项目文件夹,也就是和自己Tyrano启动器同一个目录的myprojec文件夹,在里面找到自己想要导出的项目文件夹,打开以后如下
(TyranoBuilder的是builder_config.json,TyranoStudio的是studio_config.json,不过影响不大)

我们这里只需要三个文件夹,也就是data、tyrano和index.html文件夹。
你可以选择直接在项目文件夹内进行打包,也可以选择新建一个文件夹(随便你建在哪里),然后把这三个文件夹复制过去进行打包操作,我这里是把三个文件复制到了新的文件夹内。
我更推荐后者,因为打包会下载一些依赖,会使项目文件夹变得很臃肿。但如果你的游戏项目文件太大,比如你的游戏有3个G(万一呢),移动耗时间且占空间的话,那也无所谓。
当你准备好以后,打开命令提示符,将目录移动到你要打包的项目内,就比如
1 | cd D:\Download\dabao |
不过命令提示符默认路径是在C盘,像我这种目录在D盘的,需要再输入
1 | D: |
将目录换到D盘内。


然后在这个路径下的命令提示符内输入
1 | cnpm i -D electron |
看到这样就算安装好了

同时,游戏目录变成这样

也就是多了一个package.json和node_modules文件夹
随后打开package.json文件,将里面的内容替换为
1 | { |
这里可以将name后的your-app更改你自己游戏的名字,而version后的0.1.0可以改为自己的游戏版本号。
比如像我这样,将游戏名字改成了pvz,版本号改为了1.1.4(仅供示范
此处的version只能是三位数,1.1和1.1.4.5都不行。不过可以写预发布标签,预发布标签请见文章结尾的预发布标签一栏
1 | { |
随后新建一个main.js,和其他文件一个目录

然后打开main.js文件,将里面的内容改为
1 | const { app, BrowserWindow } = require("electron"); |
随后还是在命令提示符中,输入
1 | npm start |
随后如果提示(底下那些报错无关紧要)

并且的成功跳出游戏窗口则可继续下一步。
去除调试
不过此时游戏窗口会是这样的,顶上会有一排菜单栏,右边会有一个调试栏

一般用不到这两个功能,打包后的游戏也不可能把这两个的功能给玩家用,所以在上面main.js打包的时候,可以将
1 |
|
这部分的**win.webContents.openDevTools();整行删掉,或者在这行前面加上//**,将这行注释掉。
去除菜单栏
在代码**win.loadFile(“index.html”);,上面一行添加一行win.setMenu(null);**即可
1 | win.setMenu(null); |
记得前面的缩进要和别的行对齐
去除掉这两个东西的话,就会变成正常的窗口了

3.Electron-Builder
随后还是在该目录的命令提示符内,输入
1 | cnpm i -D electron-builder |
安装Electron-Builder,这个就是主要用来打包的工具了
安装后以后,将
1 | "scripts": { |
写到package.json里。
完整package.json就应该是这样的
1 | { |
然后在命令提示符内输入
1 | npm run pack |
然后会生成一个dist文件夹,你的游戏就在里面的win-unpacked文件夹内了。

然后你就可以改个文件夹的名字,然后压缩成zip上传到网络上了。
或者说你也可以输入
1 | npm run dist |
上面的npm run pack是单纯的打包为文件夹。
这个npm run dist则是在此基础上还会打包为各个系统的安装包,不过这里应该只会有windows的安装包,因为前面写package.js的时候没有指定target,不过也够用了。

4.其他设置
更改图标
这一步更改的是窗口的图标

在main.js文件的**win.loadFile(“index.html”);前添加一行win.setIcon(‘./ico.ico’);**即可
1 | win.setIcon('./ico.ico'); |
这里的ico.ico可以随便命名,后缀支持ico,png和icns三个格式,没有大小限制,随后将图标放入项目文件夹即可,如下图

这一步更改的是程序的图标

首先打开package.json,添加
1 | "build": { |
即可,完整代码如下
1 | { |
不过注意,package.json的图标设置仅支持ico文件,并且仅支持256x256分辨率大小的ico文件。
如果出现了打包完后图标并没有变化的场景,请右键exe,选择“属性”,查看图标。

如果出现以上情况,那么则是缓存问题,通常重启Windows资源管理器或者重启电脑即可
如果属性也显示为默认图标,那么请检查图标文件的格式是否为ico,分辨率是否为256x256及以上。
预发布标签
| 预发布标签 | 中文名称 | 含义说明 | 示例 |
|---|---|---|---|
alpha |
内测版 | 早期测试版本,功能不完整,存在大量错误 | 1.0.0-alpha.1 |
beta |
公测版 | 功能相对完整,邀请用户测试,可能存在错误 | 1.0.0-beta.2 |
rc |
发布候选版 | 功能完整,极可能成为正式版,进行最后测试 | 1.0.0-rc.1 |
next |
下一版本预览 | 下一个大版本的早期预览,可能包含破坏性变更 | 2.0.0-next.0 |
dev |
开发版 | 自动化构建版本,与特定代码提交关联 | 1.0.0-dev.1234 |
canary |
金丝雀版 | 在小范围用户/环境中测试变更,用于A/B测试 | 1.0.0-canary.456 |
preview |
预览版 | 功能预览,让用户提前体验新特性 | 1.0.0-preview |
snapshot |
快照版 | 指向最新开发状态(Maven常用) | 1.0.0-snapshot |
unstable |
不稳定版 | 明确告知版本极不稳定,风险很高 | 1.0.0-unstable |
debug |
调试版 | 包含额外调试信息,性能非最优 | 1.0.0-debug |
experimental |
实验版 | 包含高度实验性功能,可能被移除 | 1.0.0-experimental |
edge |
前沿版 | 最前沿的开发状态,极不稳定 | 1.0.0-edge |
不过这并不是绝对的,你写不写都可以,预发布标签更多是一种约定俗成的写法,如果不写预发布标签就正常写1.0.0之类的即可。
Electron-Builder下载失败
如果打包时一直卡在此处,然后报错显示下载失败

首先一样打开命令提示符,在里面输入
1 | set ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ |
然后再次尝试打包即可。
如果依旧无法打包,那么可以更换其他镜像源(这里不提供其他镜像源,请自行搜索寻找),或者进行手动下载。
这里只说手动下载的方法
首先win+R唤出运行,输入
1 | %LOCALAPPDATA%/electron-builder/Cache |
运行后将会打开文件夹,里面应该如图所示

然后nsis文件夹内应该还会有两个文件夹

而winCodeSign文件夹里则会有一个文件夹

我们需要注意的nsis-3.0.4.1、nsis-resources-3.4.1、winCodeSign-2.6.0就是这三个文件夹(版本不一定对得上,也有可能是nsis-3.0.4.2或者winCodeSign-2.7.0之类的,一切按照你的文件夹内版本为准)
随后打开Electron Builder的Github界面,找到和自己版本相符的文件
比如我的nsis是3.0.4.1版本的,就往下拉,没有就去后几页找,找到对应版本

打开Assets后选择第一个压缩包进行下载,下载后将压缩包内的文件放入nsis-3.0.4.1内,进行覆盖即可,其他两个文件同理。
[!NOTE]
再次提醒,请根据自己的文件的版本寻找对应文件,请勿将完全照抄教程
