1234567891011121314151617181920212223242526272829303132 |
- /**
- * 示例自定义插件,您可以查阅 http://developer.egret.com/cn/github/egret-docs/Engine2D/projectConfig/cmdExtensionPlugin/index.html
- * 了解如何开发一个自定义插件
- */
- const crc32 = require("./crc32");
- export class ResPlugin implements plugins.Command {
- // 版本控制信息
- private versionConfig = {};
- // 需要进行版本控制的文件夹
- private versionPath = "resource/assets/";
- // 版本信息保存路径,建议放入resource包里面,因为这个文件每次都需要加载,不需要放在cdn上。
- private versionConfigPath = "resource/version.json";
- constructor() {
- }
- async onFile(file: plugins.File) {
- var path = file.origin;
- //对resource/assets下面的资源进行版本控制
- if (path.indexOf(this.versionPath) != -1 && (file.extname === ".mp3" || file.extname === ".fnt" || file.extname === ".json" || file.extname === ".png" || file.extname === ".jpg")) {
- path = path.replace(this.versionPath, "");
- this.versionConfig[path] = crc32(file.contents.toString());
- // 原始的文件夹+crc32码+后缀扩展名
- file.path = this.versionPath + this.versionConfig[path] + file.extname;
- }
- return file;
- }
- async onFinish(commandContext: plugins.CommandContext) {
- commandContext.createFile(this.versionConfigPath, new Buffer(JSON.stringify(this.versionConfig)));
- }
- }
|