AMD and CMD are dead之KMDjs在JS工程化的努力
2014-07-03 12:20 【當(dāng)耐特】 閱讀(1464) 評(píng)論(0) 收藏 舉報(bào)總覽
kmdjs發(fā)布了最接近最終版本的0.0.4版本https://github.com/kmdjs/kmdjs,你已經(jīng)完全可以在項(xiàng)目中使用。我已經(jīng)無(wú)法用語(yǔ)言形容其完美程度。借用我發(fā)的微博:
模塊管理
kmdjs僅僅需要一處配置,即main.js上部的kmdjs.config,用于配置項(xiàng)目名稱、baseUrl,并且列出所有Class和其于路徑的mapping。在開(kāi)發(fā)桌面程序的時(shí)候,這個(gè)可能IDE會(huì)自動(dòng)幫助管理。
依賴可視
想看整個(gè)項(xiàng)目的依賴關(guān)系,只需在main后面添加?view
當(dāng)然也支持細(xì)粒度的依賴可視,比如引用了其他模塊,查看該模塊的依賴關(guān)系,這個(gè)功能會(huì)在后續(xù)版本中添加。
開(kāi)發(fā)
其中,父類的靜態(tài)屬性也可以繼承和覆蓋。
調(diào)試
開(kāi)啟調(diào)試非常方便,只需:
就可以在任意瀏覽器的開(kāi)發(fā)者工具里面輸出經(jīng)過(guò)kmdjs管線聲稱的Class,如:
延遲按需加載
在kmdjs v0.0.3版本,假如了kmdjs.get方法用于異步加載模塊。那個(gè)版本只支持單一js文件,而0.0.4版本已經(jīng)可以自動(dòng)把該異步模塊及其依賴全部獲取。寫法支持兩種方式:回掉形式和promise形式:
打包
早在0.0.1版本,就支持all in one code。開(kāi)啟方式也非常簡(jiǎn)便:
kmdjs會(huì)自動(dòng)創(chuàng)建一個(gè)textarea并把打包的代碼放入其中,只需把該代碼替換原來(lái)的<script src=”kmd.js”></script>即可正常運(yùn)行。
細(xì)粒度打包
在寫kmdjs第一行代碼的時(shí)候,我就知道all in one code只有在業(yè)務(wù)小、或者打包成apk或者ipa時(shí)候才能使用。引用前端農(nóng)民工一句話:
可以把其依賴于項(xiàng)全部單獨(dú)壓縮起來(lái)。當(dāng)且僅當(dāng)業(yè)務(wù)規(guī)模很小,緩存命中、按需加載收益不明顯時(shí),all in one code的方式才因?yàn)闆](méi)那么矬而不被察覺(jué)其劣勢(shì)。
所以,在kmdjs0.0.4版本中,可以支持細(xì)粒度打包,打包的模塊會(huì)自動(dòng)合并其依賴。而且被打包之后的模塊可以被任意kmdjs項(xiàng)目使用。
是不是有點(diǎn)dll的感覺(jué)了?我引用某一dll,我就能使用dll里的方法!
重生入口
https://github.com/kmdjs/kmdjs
最后
update20140704
今天發(fā)布了kmdjs v0.0.5,較大的改動(dòng)就是build之后的代碼經(jīng)過(guò)ug2全力壓縮。相關(guān)的壓縮代碼如下:








浙公網(wǎng)安備 33010602011771號(hào)