Cocos Creator—如何給資源打MD5版本號(hào)

Cocos Creator 是Cocos最新一代的游戲開(kāi)發(fā)者工具,基于 Cocos2d-x,組件化诫钓,腳本化,數(shù)據(jù)驅(qū)動(dòng)篙螟,跨平臺(tái)發(fā)布菌湃。Cocos Creator的開(kāi)發(fā)思路已經(jīng)逐步跟Unity 3D靠攏,寫(xiě)起來(lái)也更方便快捷遍略,開(kāi)發(fā)效率更高惧所。

但既然是新東西,免不了各種坑绪杏。其中在發(fā)布Web Mobile平臺(tái)上下愈,就有各種小問(wèn)題,例如給資源加上md5版本號(hào)蕾久,Cocos Creator就不支持势似。從16年底開(kāi)發(fā)組就說(shuō)要支持MD5 Cache,等了大半年,新的1.6內(nèi)測(cè)版本終于增加了MD5 Cache的功能履因,但效果也是差強(qiáng)人意障簿。

為什么呢?因?yàn)檎?lái)說(shuō)栅迄,一般頁(yè)面除了首頁(yè)的index.html站故,其他資源都是要添加md5版本號(hào)的,1.6內(nèi)測(cè)版確實(shí)增加了版本號(hào)霞篡,但只給圖片等資源做了md5世蔗,cocos2d-js-min.js端逼,main.js并沒(méi)有加朗兵,這根本不能用啊喂!

ubiaoqing57c3df113178b16943.jpg

官方不支持顶滩,只好自己動(dòng)手豐衣足食了余掖,具體思路是通過(guò)gulp等構(gòu)建工具實(shí)現(xiàn)。
gulp安裝請(qǐng)?jiān)L問(wèn):https://gulpjs.com/
nodejs安裝請(qǐng)?jiān)L問(wèn):http://nodejs.org/
另外需要安裝gulp相關(guān)插件:gulp-rev gulp-rev-collector

思路如下:

  1. 把build/web-mobile/src里面的project.js拷貝到build/web-mobile/礁鲁,目的是為了匹配main.js里的‘project.js’
  2. 通過(guò)gulp-rev給js和png圖片打md5版本號(hào)
  3. 通過(guò)gulp-rev-collector替換文件原路徑到打版本號(hào)的路徑

gulpfile文件代碼:

var gulp = require('gulp');
var fileInline = require('gulp-file-inline');
var concat = require('gulp-concat');
var htmlmin = require('gulp-htmlmin');
var rev = require('gulp-rev');
const imagemin = require('gulp-imagemin');
var revCollector = require('gulp-rev-collector');

gulp.task('resRev', function (cb) {
  // res, thm資源文件打版本號(hào)
  gulp.src(['./build/web-mobile/**/*.js', './build/web-mobile/*.png', './build/web-mobile/**/*.css'])
      .pipe(rev())
      .pipe(gulp.dest('./build/web-mobile/'))
      .pipe(rev.manifest())
      .pipe(gulp.dest('./build/web-mobile/')
      .on('end', cb));
});
gulp.task('default',['resRev'], function(cb) {
  gulp.src(['./build/web-mobile/*.json', './build/web-mobile/index.html'])
      .pipe(revCollector())
      .pipe(gulp.dest('./build/web-mobile/'));
  gulp.src(['./build/web-mobile/*.json', './build/web-mobile/main*.js'])
      .pipe(revCollector({
        replaceReved: true
      }))
  .pipe(gulp.dest('./build/web-mobile/')); 
});

在命令行里面執(zhí)行gulp就可以給相應(yīng)的文件打版本號(hào)啦盐欺!

對(duì)比前后的版本打包情況,執(zhí)行之前仅醇,除了圖片冗美,js和css還是沒(méi)有加md5的:

cocos-creator-default-md5.png

可以看到,css和js都是沒(méi)有打md5的析二,這個(gè)文件發(fā)到cdn會(huì)導(dǎo)致文件無(wú)法更新

執(zhí)行g(shù)ulp之后:

cocos-creator-md5.png

js和css已經(jīng)打上版本號(hào)粉洼。

細(xì)心的開(kāi)發(fā)者可能看到project.js和圖片沒(méi)有打md5。這里由于是提供思路叶摄,所以不把所有的功能完善属韧,有興趣的讀者可以自己完善。實(shí)際上我不會(huì)把這幾個(gè)js和css打版本號(hào)的蛤吓。最后產(chǎn)出會(huì)把這幾個(gè)文件合并到index.html中宵喂。

完整代碼可以訪問(wèn):https://github.com/babyzone2004/cocosMd5,這個(gè)示例包含了Cocos Creator圖片壓縮優(yōu)化会傲,減少首次文件請(qǐng)求锅棕,html壓縮,動(dòng)態(tài)更新定制loading圖等功能哦淌山。

ps:

我們團(tuán)隊(duì)正在招聘優(yōu)秀的H5游戲開(kāi)發(fā)工程師裸燎,如果你符合以下條件:

  1. 白鷺引擎/Cocos2d-js/Layabox等H5相關(guān)的開(kāi)發(fā)經(jīng)驗(yàn)
  2. 希望快速成長(zhǎng),不甘平庸

請(qǐng)聯(lián)系我吧:babyzone2004@qq.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末艾岂,一起剝皮案震驚了整個(gè)濱河市顺少,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖脆炎,帶你破解...
    沈念sama閱讀 216,744評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件梅猿,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡秒裕,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)几蜻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)喇潘,“玉大人,你說(shuō)我怎么就攤上這事梭稚∮钡停” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,105評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵弧烤,是天一觀的道長(zhǎng)忱屑。 經(jīng)常有香客問(wèn)我,道長(zhǎng)暇昂,這世上最難降的妖魔是什么莺戒? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,242評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮急波,結(jié)果婚禮上从铲,老公的妹妹穿的比我還像新娘。我一直安慰自己澄暮,他們只是感情好名段,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評(píng)論 6 389
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著赏寇,像睡著了一般吉嫩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嗅定,一...
    開(kāi)封第一講書(shū)人閱讀 51,215評(píng)論 1 299
  • 那天自娩,我揣著相機(jī)與錄音,去河邊找鬼渠退。 笑死忙迁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的碎乃。 我是一名探鬼主播姊扔,決...
    沈念sama閱讀 40,096評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼梅誓!你這毒婦竟也來(lái)了恰梢?” 一聲冷哼從身側(cè)響起佛南,我...
    開(kāi)封第一講書(shū)人閱讀 38,939評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嵌言,沒(méi)想到半個(gè)月后嗅回,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,354評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡摧茴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評(píng)論 2 333
  • 正文 我和宋清朗相戀三年绵载,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苛白。...
    茶點(diǎn)故事閱讀 39,745評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡娃豹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出购裙,到底是詐尸還是另有隱情懂版,我是刑警寧澤,帶...
    沈念sama閱讀 35,448評(píng)論 5 344
  • 正文 年R本政府宣布缓窜,位于F島的核電站定续,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏禾锤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評(píng)論 3 327
  • 文/蒙蒙 一摹察、第九天 我趴在偏房一處隱蔽的房頂上張望恩掷。 院中可真熱鬧,春花似錦供嚎、人聲如沸黄娘。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,683評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)逼争。三九已至,卻和暖如春劝赔,著一層夾襖步出監(jiān)牢的瞬間誓焦,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,838評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工着帽, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留杂伟,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,776評(píng)論 2 369
  • 正文 我出身青樓仍翰,卻偏偏與公主長(zhǎng)得像赫粥,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子予借,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容