CocosCreator-项目资源优化工具-AssetClean

2021-04-13  本文已影响0人  程序猿TODO

AssetCleanerForCocosCreator

简介:一个基于Node.js的CocosCreator项目资源清理工具,自动化统计有哪些资源未使用,以及各类型资源的占比情况,从而帮助减小包体。

代码地址:https://github.com/foupwang/AssetCleanerForCocosCreator

为什么需要AssetCleaner

当项目资源数超过1000个时,以上问题变得更加突出,AssetCleaner为解决以上资源优化问题而生。

AssetCleaner功能

支持以下文件类型

1).png/.jpg/.webp(包括普通图片、图集、Spine、DragonBone、艺术数字)

2).prefab/.fire

3).anim

4).js/.ts代码

下图为查找未使用资源的输出示例

下图为统计assets原始资源的输出示例

下图为统计构建后资源web-mobile的输出示例

AssetCleaner使用

AssetCleaner基于Node.js开发,所以需要先安装Node.js,我的测试环境是:Node.js 10.14.2 + Win10 + CocosCreator 2.1.2

目前支持以下两种命令

node main.js -clean 项目资源目录 结果输出文件   // 查找未使用资源
node main.js -size 项目资源目录 结果输出文件    // 按类型统计目录下所有文件从大到小排序

例如,CocosCreator项目路径是d:/myproject,则进入AssetCleaner的脚本代码目录。

1)查找未使用资源。命令行输入:

node main.js -clean d:/myproject/assets d:/out.txt

查找结果将会输出到d:/out.txt文件。

2)按类型统计assets目录下所有原始资源。命令行输入:

node main.js -size d:/myproject/assets d:/out.txt

查找结果输出到d:/out.txt文件。

3)按类型统计构建后的build/web-mobile目录下所有文件。命令行输入:

node main.js -size d:/myproject/build/web-mobile d:/out.txt

查找结果输出到d:/out.txt文件。

QA

1、AssetCleaner会自动清除文件吗?

不会。AssetCleaner只是分析并把统计结果输出到文件,实际删除需自己手动操作。

2、AssetCleaner为什么不做成Creator插件?

命令行可以更好的结合自动化构建流程,便于拓展。

3、为什么有些资源明明是有用的,但也被认为是未引用资源?

一般是因为资源命名不一致造成的。例如:对于艺术数字类型,如果图片名是font_01.png,则描述文件应是font_01.labelatlas;对于Spine动画,如果图片名是light_01.png,则描述文件应是light_01.atlas和light_01.json;否则该图片可能被认为是未引用。

4、AssetCleaner的局限

查找未使用资源的功能,目前主要适用于非resources目录。对于resources目录,因为原则上resources目录只存放动态加载资源,而动态加载的资源名在代码里多数情况下是变量,暂时没找到有效匹配方案,所以目前只是试验性地支持resources目录的.prefab类型(完全匹配)。期待技术大佬们加入这个开源项目,一起完善它。

上一篇 下一篇

猜你喜欢

热点阅读