MorJS 代碼規(guī)范

2024-01-25 11:51 更新
  • 源代碼:

    • 原則上使用 TypeScript 寫(xiě)源代碼,并輸出 .d.ts 類(lèi)型申明文件,方便開(kāi)發(fā)同學(xué)快速上手,MorJS 提供了多端組件庫(kù)的腳手架,可以快速初始化項(xiàng)目,并利用 MorJS 進(jìn)行多端產(chǎn)物輸出。
  • 代碼輸出 ES5 版本:

    • 依賴(lài)庫(kù)輸出的版本需要為 ES5 的版本,原因是小程序構(gòu)建的時(shí)候并不會(huì)對(duì) node_modules 里面的代碼進(jìn)行 ES6 轉(zhuǎn) ES5,所以在不支持 ES6 的機(jī)型會(huì)直接報(bào)錯(cuò)
    • 如果采用的是 TypeScript,建議在 tsconfig.json 中把 importHelpers 設(shè)置成 true,來(lái)減少生成出來(lái)的代碼體積。注:使用 MorJS 的項(xiàng)目,會(huì)建議裝 tslib 這個(gè)依賴(lài)
  • babel 的特別說(shuō)明:

    • 同樣,原則上如果沒(méi)有特別的需要建議直接用 TypeScripttsc 即可
    • babel 默認(rèn)情況下針對(duì) async/await 的語(yǔ)法會(huì)使用 regenerator-runtime 這個(gè)庫(kù)做 polyfill,而這個(gè)庫(kù)默認(rèn)情況下是不會(huì)聲明這個(gè) regeneratorRuntime 變量,因此會(huì)在嚴(yán)格模式下報(bào)錯(cuò) Can't find variable: regeneratorRuntime,而庫(kù)的兜底策略是會(huì)采用動(dòng)態(tài)函數(shù)賦值(參考 源代碼),而動(dòng)態(tài)函數(shù)在小程序上由于安全問(wèn)題不允許執(zhí)行。所以導(dǎo)致在小程序上會(huì)直接報(bào)錯(cuò)。
    • 目前 mor bundle 模式針對(duì)該問(wèn)題已經(jīng)做了兼容兜底
  • 單元測(cè)試:

    • 單元測(cè)試建議采用 Jest,具體使用上請(qǐng)參考 Jest 官網(wǎng)
    • 建議測(cè)試覆蓋率達(dá)到 90% 以上,Jest 可直接輸出代碼覆蓋率報(bào)告
以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)