构建选项介绍
通用构建选项
构建发布 面板中的通用构建参数默认是按照平台区分的,如下:
发布路径
发布路径中包含两个输入框:
第一个输入框用于指定项目的发布路径,可直接在输入框输入路径或者通过旁边的放大镜按钮选择路径。从 v3.1 开始支持切换使用以下两种路径:
- file:指定的发布路径为 绝对路径,也就是之前版本使用的方式。
project:指定的发布路径为 相对路径,选择的路径只能在项目目录下。使用该种路径时,构建选项里一些与路径相关的(例如 icon 图标)配置便会以相对路径的方式记录,便于团队成员在不同设备上共享配置。
默认的发布路径为项目目录的
build
文件夹下,如果您使用 Git、SVN 等版本控制系统,可以将build
文件夹在版本控制中忽略。
注意:发布路径中不允许包含空格、非法字符以及中文。
第二个输入框用于指定项目构建时的构建任务名称以及构建后生成的发布包名称。默认为当前构建平台名称,同个平台每多构建一次,便会在原来的基础上加上 -001 的后缀,以此类推。构建完成后可直接点击输入框后面的文件夹图标打开项目发布包所在目录。
初始场景
设置打开游戏后进入的第一个场景。可以在 参与构建的场景 列表中搜索所需的场景,将鼠标移动到所需场景栏,然后点击右侧出现的按钮,即可将其设置为初始场景。
参与构建场景
在构建过程中,除了项目目录下的 resources
文件夹以及 bundle 中的资源和脚本会全部打包外,其他资源都是根据参与构建的场景以及 bundle 中的资源引用情况来按需打包的。因而去除勾选不需要发布的场景,可以减少构建后生成的项目发布包包体体积。
Bundles
自 v3.8 起,开发者可以根据项目的需求,来决定某个 Bundle 是否要参与到构建中。
- 全选:所有的 Bundle 都会参与构建。
取消后可以从下拉框内选择需要参与构建的 Bundle。
正常构建模式下,主包和引擎内置 internal 包不可取消。
在 Bundle 中嵌入公共脚本
是否在构建 Bundle 时嵌入公共脚本。
该选项目前无法修改,只会随着构建面板上的 正常构建/仅构建 Bundle 切换而切换。
- 未勾选时: 在构建 Bundle 时,会将不同 Bundle 之间公用的一些 helper 之类的内容生成在 src/chunk 内的 bundle.js 内,减少整体脚本的体积。但这样构建出来的 Bundle 是和项目相耦合的,无法跨项目复用。
- 勾选时: 不再提取 Bundle 依赖的公共 JS 库内而是直接构建在 Bundle 的内部。这样的 Bundle 可以跨项目使用(因为所需的脚本都在 Bundle 的内部,而引用相同代码的 Bundle 可能会有重复的部分),缺陷是由于脚本资源都在 Bundle 内部,因此最终的 Bundle 体积会增大。
MD5 缓存
为构建后的所有资源文件名加上 MD5 信息,可以解决 CDN 或者浏览器资源缓存问题。
启用后,如果出现资源加载不了的情况,说明找不到重命名后的新文件。这通常是因为有些第三方资源没通过 assetManager
加载引起的。这时可以在加载前先用以下方法转换 URL,转换后的路径就能正确加载。
const uuid = assetManager.utils.getUuidFromURL(url);
url = assetManager.utils.getUrlWithUuid(uuid);
注意:原生平台启用 MD5 Cache 后,如果出现资源加载不了的情况,通常是因为有些 C++ 中用到的第三方资源没通过
assetManager
加载引起的。也可以通过以下代码转换 URL 来解决:
auto cx = ScriptingCore::getInstance()->getGlobalContext();
JS::RootedValue returnParam(cx);
ScriptingCore::getInstance()->evalString("cc.assetManager.utils.getUrlWithUuid(cc.assetManager.utils.getUuidFromURL('url'))", &returnParam);
string url;
jsval_to_string(cx, returnParam, &url);
主包压缩类型
设置主包的压缩类型,具体内容可参考文档 Asset Bundle — 压缩类型。
配置主包为远程包
该项为可选项,需要与 资源服务器地址 选项配合使用。 勾选后,主包会配置为远程包,并且与其相关依赖资源一起被构建到发布包目录 remote 下的 内置 Asset Bundle — main 中。开发者需要将整个 remote 文件夹上传到远程服务器。
资源服务器地址
填写后,将会在对应的远程服务器上下载配置了远程包的 bundle。
使用构建内置服务器(实验室功能)
勾选后,无需再填写服务器地址,构建将会自动填充内置服务器地址,可用于快速验证 bundle 的 remote 功能。 需要注意的是,此选项仅作为开发测试使用,不可用于生产环境。构建内置服务器是本地搭建的 HTTP1 服务器,一些需要 HTTPS 服务器的游戏平台请关掉开发者工具域名校验或者不使用此功能自行搭建服务器,同时手机连接请保持和电脑在同一局域网下。
调试模式
若不勾选该项,则处于发布(release)模式,会对资源的 UUID、构建出来的引擎脚本和项目脚本进行压缩和混淆,并且对同类资源的 json 做分包处理,减少资源加载的次数。
若勾选该项,则处于调试模式,同时也可以配合勾选 Source Maps 选项,对项目进行调试,更方便定位问题。
Source Maps
如果需要生成 sourcemap,请勾选该项。构建时便会默认压缩引擎文件和项目脚本。
由于 JavaScript 脚本正变得越来越复杂,大部分源码(开发代码)都要经过编译转换才能投入生产环境,这就使实际运行的代码不同于源码,导致调试时无法定位到源代码。而 Source Map 可以将已转换的代码映射到源码,也就是将转换后的代码对应到转换前的源码的位置。这样在出现问题时,便可以直接查看和调试源码,定位问题更容易。详情可参考 使用 source map。
替换插屏
鼠标移动到该选项时便会出现 编辑图标 的按钮,点击该按钮打开插屏设置面板,数据编辑后将会实时保存。可手动指定插屏图片路径,或者直接将文件系统的图片拖拽到图片处替换。
插屏的详细设置可以参考 项目设置 - 插屏设置。
擦除模块结构(实验性质)
若勾选该项,脚本导入速度更快,但无法使用模块特性,例如 import.meta
、import()
等。
跳过纹理压缩流程
默认为 false
,若勾选该选项,则构建时会跳过整个纹理压缩流程,以减少构建时间。构建命令为:skipCompressTexture
。
Cocos Service 配置集
该项用于显示当前项目在 服务 面板所集成的所有服务。
各平台相关构建选项
由于目前构建机制上的调整,不同平台的处理均以扩展的形式注入 构建发布 面板。在 构建发布 面板的 发布平台 中选择要构建的平台后,将会看到对应平台的展开选项,展开选项的名称便是平台扩展名,在编辑器主菜单的 扩展 -> 扩展管理器 -> 内置 中可以看到各平台扩展。
各平台相关构建选项,详情请参考:
Cocos Creator 支持自定义构建扩展,处理方式与平台扩展一致,详情可参考 自定义构建流程。
其他参与构建的参数配置
编辑器菜单栏 项目 -> 项目设置 中的配置都会影响到项目构建的结果,详情请参考 项目设置。