国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

如何開發(fā)出更好的JavaScript模塊

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:23:19
文檔

如何開發(fā)出更好的JavaScript模塊

如何開發(fā)出更好的JavaScript模塊:不少人都曾經(jīng)在 npm 上發(fā)布過自己開發(fā)的 JavaScript 模塊,而在使用一些模塊的過程中,我經(jīng)常產(chǎn)生這個模塊很有用,但如果能 xxx 就更好了的想法。所以,本文將站在模塊使用者的角度總結(jié)一下,如何能讓模塊變得更好用。 提供 ES6 模塊的入口 webpa
推薦度:
導(dǎo)讀如何開發(fā)出更好的JavaScript模塊:不少人都曾經(jīng)在 npm 上發(fā)布過自己開發(fā)的 JavaScript 模塊,而在使用一些模塊的過程中,我經(jīng)常產(chǎn)生這個模塊很有用,但如果能 xxx 就更好了的想法。所以,本文將站在模塊使用者的角度總結(jié)一下,如何能讓模塊變得更好用。 提供 ES6 模塊的入口 webpa

不少人都曾經(jīng)在 npm 上發(fā)布過自己開發(fā)的 JavaScript 模塊,而在使用一些模塊的過程中,我經(jīng)常產(chǎn)生“這個模塊很有用,但如果能 xxx 就更好了”的想法。所以,本文將站在模塊使用者的角度總結(jié)一下,如何能讓模塊變得更好用。

提供 ES6 模塊的入口

webpack 和 rollup 都支持對 ES6 模塊做一些靜態(tài)優(yōu)化(例如 Tree Shaking 和 Scope Hoisting),它們都會優(yōu)先讀取 package.json 中的 module 字段作為 ES6 模塊的入口,若沒有 module 才會讀取 main 字段作為 CommonJS 模塊的入口。通常的做法是:使用 ES6 語法編寫源碼,然后用模塊打包工具結(jié)合語法轉(zhuǎn)換工具生成 CommonJS 模塊和 ES6 模塊,這樣就可以同時提供 main 和 module 字段了。

提供 TypeScript 的類型聲明文件

如果你的用戶使用了 TypeScript 但你的模塊沒有提供聲明文件,他們就不得不在項(xiàng)目中添加一段代碼避免 TypeScript 的編譯錯誤;另外,這樣做并不只是對使用 TypeScript 的用戶友好,因?yàn)榇蟛糠执a編輯器(Webstorm、VS Code 等)都能識別 TypeScript 的類型聲明,它們可以據(jù)此提供更精準(zhǔn)的代碼提示并在用戶傳入錯誤的參數(shù)個數(shù)或類型時給出提示。

最好的做法是使用 TypeScript 編寫你的模塊,編譯時會自動生成類型聲明。除此之外,你也可以參照文檔手動維護(hù)一份聲明文件。你可以在你的模塊根目錄下添加 index.d.ts 文件,或者在 package.json 中聲明 typings 字段提供聲明文件的位置。

讓模塊同時在 Node.js 與瀏覽器中運(yùn)行

你可以通過檢測是否有名為 window 的全局變量(例如 !!typeof window)來判斷模塊當(dāng)前是運(yùn)行在 Node.js 還是瀏覽器中,然后使用不同的方式實(shí)現(xiàn)你的功能。

這種方法比較常見,但如果用戶使用了模塊打包工具,這樣做會導(dǎo)致 Node.js 與瀏覽器的實(shí)現(xiàn)方式都會被包含在最終的輸出文件中。針對這個問題,開源社區(qū)提出了在 package.json 中添加 browser 字段的提議,目前 webpack 和 rollup 都已經(jīng)支持這個字段了。

browser 字段有兩種使用方式:

給 browser 字段提供一個文件路徑作為在瀏覽器端使用時的模塊入口,但需要注意的是,打包工具會優(yōu)先使用 browser 字段指定的文件路徑作為模塊入口,所以你的 module 字段會被忽略,這會導(dǎo)致打包工具不會優(yōu)化你的代碼。詳細(xì)信息請參考這個問題。

如果你只想替換其中一些文件,你可以聲明一個對象。

舉個例子,假設(shè)你的模塊里有兩個文件:http.js 和 xhr.js,第一個文件使用 Node.js 中的 http 模塊發(fā)起請求,另一個使用瀏覽器中的 XMLHTTPRequest 實(shí)現(xiàn)了同樣的功能。為了使用適當(dāng)?shù)奈募?,你的模塊代碼中應(yīng)該始終 require(‘./path/to/http.js'),并在 package.json 中聲明:

{
 "browser": {

 "./path/to/http.js": "./path/to/xhr.js"
 }
}

這樣一來,當(dāng)你的模塊在打包工具中使用時,打包工具只會將 xhr.js 的代碼包含在最終的輸出文件中。

使用各種服務(wù)武裝你的項(xiàng)目

大部分 JavaScript 項(xiàng)目都是開源的,而開源社區(qū)也提供了很多針對開源項(xiàng)目的免費(fèi)服務(wù),它們可以給你的項(xiàng)目提供更有力的幫助,這里列舉幾個比較常用的。

一個項(xiàng)目最常使用的服務(wù)就是持續(xù)集成了。持續(xù)集成服務(wù)能將測試、代碼風(fēng)格檢測、打包等任務(wù)放在服務(wù)器上,并在你提交代碼時自動運(yùn)行,常用的有 Travis CI、CircleCI 和 AppVeyor。Travis CI 對開源項(xiàng)目免費(fèi),提供 Linux 與 OS X 運(yùn)行環(huán)境;CircleCI 對開源與私有項(xiàng)目都免費(fèi),但每個月有 1500 分鐘的運(yùn)行時間限制;AppVeyor 提供 Windows 運(yùn)行環(huán)境,同樣對開源項(xiàng)目免費(fèi)。

運(yùn)行完測試之后,你還可以將測試覆蓋率上傳到 Coveralls。這個服務(wù)能讓你在線瀏覽代碼的測試覆蓋情況。

如果你想讓你的模塊在各個版本的各種瀏覽器、平臺下得到充分的測試,你還可以使用 Sauce Labs 和 BrowserStack,它們都是對開源項(xiàng)目免費(fèi)的,但需要發(fā)郵件申請。

最后,Shields IO 提供了各種圖標(biāo),這些圖標(biāo)能為你的項(xiàng)目提供很多額外信息,包括但不限于 npm 版本號、下載量、測試通過狀態(tài)、測試覆蓋率、文件大小、依賴是否過期等。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

如何開發(fā)出更好的JavaScript模塊

如何開發(fā)出更好的JavaScript模塊:不少人都曾經(jīng)在 npm 上發(fā)布過自己開發(fā)的 JavaScript 模塊,而在使用一些模塊的過程中,我經(jīng)常產(chǎn)生這個模塊很有用,但如果能 xxx 就更好了的想法。所以,本文將站在模塊使用者的角度總結(jié)一下,如何能讓模塊變得更好用。 提供 ES6 模塊的入口 webpa
推薦度:
標(biāo)簽: 如何 更好 開發(fā)
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 日韩欧美三区 | 久久久久777777人人人视频 | 欧美日韩国产中文字幕 | 免费黄色在线观看 | 国偷自产一区二区免费视频 | 九九国产精品九九 | 国模冰冰大尺度啪啪 | 亚洲精品自产拍在线观看app | 久久精品国产欧美日韩99热 | 国产 日韩 欧美 亚洲 | 中国一级全黄的免费观看 | 伊人久久精品成人网 | 国产精品亚洲一区二区三区久久 | 91视频一区二区三区 | 亚洲欧美日韩另类精品一区二区三区 | 国产日韩欧美另类重口在线观看 | 国产欧美综合在线一区二区三区 | 亚洲一区二区三区在线免费观看 | 欧美视频精品一区二区三区 | 2022国产91精品久久久久久 | 日韩免费播放 | 国产第7页 | 91精品国产品国语在线不卡 | 国产毛片一级国语版 | 中文字幕第4页 | 久久久久久亚洲精品不卡 | 91精品一区二区三区久久久久 | 亚洲色欧美 | 国产成人久久精品二区三区 | 日韩av线上 | 国产精品成人一区二区 | 国产女人在线视频 | 一级欧美日韩 | 欧美精品福利 | 欧美日韩亚洲综合另类ac | 日本欧美国产精品第一页久久 | 视频一区久久 | 欧洲高清一区二区三区试看 | 久久一区二区精品综合 | 亚欧免费视频一区二区三区 | 手机在线国产视频 |