小伙伴发我一个 1G 的 Cocos 项目,assets 只有几十兆

0 阅读5分钟

封面图

引言

哈喽大家好,我是亿元程序员,一位有着 8 年游戏行业经验的主程。

最近私信里出现频率最高的,不是报错截图,是压缩包。

亿哥,工程打不开了,我把项目打包发给你看看。

接着弹进来一个文件

好家伙,1G 的大工程

下完解压,assets 才几十兆。剩下全是 librarytempbuild

不要打包,不要打包,不要打包!

都不知道说过多少次了:

librarytempbuild不要打包,不要打包,不要打包!

看来还是有很多小伙伴对 Cocos 的工程目录不了解,导致发给别人的不是工程,而是一个流量炸弹。

言归正传,本期跟着笔者来看看 Cocos 的项目结构是怎样的,怎么打包最简便。

本文示例工程在文末获取,小伙伴们自行前往。

Cocos 项目里,这些文件夹到底是干什么的?

一个 Cocos Creator 3.x 工程,怎么才能被编辑器识别?

最低配置其实就两样:assets + package.json

打开之后,它还会自己生成 librarytemplocal,看起来都像项目的一部分,其实分两种:

  • 你写出来的:源码、资源、配置。丢了就没了。
  • 编辑器生成的:缓存、临时文件、构建产物。删了再打开或者重新构建,它自己会再生成。

流量炸弹通常就出在第二种,打包五分钟,下载两小时。

1. 必须带走(别人才能打开)

路径人话
assets/(含全部 .meta最重要,日常 99% 在这里干活
package.json项目标识文件,引擎靠它识别这是 Cocos 项目
settings/项目设置,通常是分组等配置,极限可忽略
tsconfig.jsonTS 语法 / 类型配置,极限可忽略

2. 不要打包(删了还能再生成)

路径为什么能扔
library/导入缓存,打开工程会重建,通常最大
temp/临时文件
local/你的窗口布局,带去只会污染别人编辑器
build/构建产物,那是「发布包」不是「源工程」
node_modules/ .git/依赖(要保留声明)和版本库,别塞进分享包

3. 根据具体情况(都行)

路径干嘛的
extensions/项目自己的扩展,有则留
profiles/构建配置、编辑器通用配置
native/原生部分内容,如果有需要保留
.gitignoregit 忽略清单
.codex/ .cursor/ .claude/AI 编程工具(Codex / Claude Code / Cursor )的中间产物

以上就是 Cocos 3.8.7 的核心目录讲解,小伙伴们可以通过官方文档深入了解。

总结

分类建议内容
最低识别条件assets/、package.json
精简工程默认保留assets/、settings/、package.json、tsconfig.json
按项目保留extensions/、profiles/、native/、依赖锁文件、项目自定义文件
默认排除library/、temp/、local/、build/、node_modules/、.git/
检查后决定.codex/、.cursor/、.claude/ 及包含账号、密钥、本机路径的配置

那怎么打包最简便?

目录搞懂了,压缩就三步:必须带走的留下,不要打包的扔掉,剩下的按情况取舍。

1. 方法一:手动删除后压缩

了解每个目录的作用之后,我们就可以手动打包了:

  1. 关掉 Creator,避免文件占用。
  2. 复制一份工程,避免误删。
  3. 必删librarytemplocalbuildnode_modules
  4. 选删profilesnative、没有用到的扩展,按上一节自行决定。
  5. 右键剩余内容打 zip,发给别人。

就像这样

2. 方法二:压缩后再删除

有个小技巧比方法一安全:

  1. 先打 zip
  2. 打开 zip 删掉不要的

省去复制的操作

但是问题来了:这事你会,但你会烦。

  • 每打包一次,就重复一次。
  • 手滑删了 assetspackage.json,工程直接废。
  • 漏删一个 library,zip 又回到快 1G,打包五分钟,下载两小时。

3. 方法三:一键导出精简工程 ZIP

重复性工作就不该靠记忆力。于是我写了一个扩展。

怎么用?

菜单栏项目导出精简工程 ZIP选保存位置保存。

解:如图所示

默认文件名是 {项目名}-min.zip。解压出来是一个完整工程文件夹,对方用同版本 Creator 打开即可。

流程就四步:

  1. 读当前打开工程的根目录(Editor.Project.path)。
  2. 根目录下,只扫描白名单里的文件夹和文件。
  3. 递归打包时,遇到排除名单里的目录名,直接跳过。
  4. 写 zip,根目录用项目名包一层,避免解压后文件散落。

核心代码比较简单

喜欢就留,不喜欢就删

效果就是:原来打包五分钟、下载两小时;现在核心几十兆,微信里传完就能开。

插件放哪?

路径如下:

%USERPROFILE%\.CocosCreator\builtin-extensions\3.8.7\export-min-project

Windows 举例:

C:\Users\你的用户名\.CocosCreator\builtin-extensions\3.8.7\export-min-project

放进去之后:

  1. 完全退出 Creator,再重新打开。
  2. 打开任意工程,菜单 项目 里就能看到 导出精简工程 ZIP

为什么放这里? 前面的文章讲过, %USERPROFILE%\.CocosCreator\builtin-extensions\3.8.7\ 是 Creator 3.8.7 的用户级内置扩展目录。放进去后,所有 3.8.7 工程都能用,不用每个项目拷一份。

当然也可以只给单个项目用:把 export-min-project 文件夹放到该工程的 extensions/ 目录下,只对当前项目生效。

结语

问题来了,小伙伴们收到/给出的最大的工程包多大? 评论区告诉大家你的数字。

本文实例工程可通过私信发送“打包工程”获取。

更多实战完整源码包含编辑器已集成到亿元Cocos小游戏实战合集(已完结),感谢小伙伴们对创作的支持。


我是"亿元程序员",一位有着8年游戏行业经验的主程。在游戏开发中,希望能给到您帮助,也希望通过您能帮助到大家。

实不相瞒,想要个爱心!请把该文章分享给你觉得有需要的其他小伙伴。谢谢!

推荐文章:

亿元Cocos小游戏实战合集2.0

亿元Cocos小游戏实战合集1.0

老板说最近这款游戏很火让我抄,可是我连玩都玩不明白...

这款值68亿的游戏,你不实战一下吗?安排!

小伙伴说我的拼图游戏用Mask不能合批...

俄罗斯方块谁不会做......啊?流沙版?

最近很火的一个拼图游戏,老板让我用Cocos3.8做一个...

老板说拼图游戏太卷了,让我用Cocos做个3d版本的...

敢不敢挑战用Cocos3.8复刻曾经很火的割绳子游戏?