日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

開發(fā)更好用的 JavaScript 模塊

瀏覽:29日期:2023-11-11 16:17:39

開發(fā)更好用的 JavaScript 模塊

不少人都曾經(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 但你的模塊沒有提供聲明文件,他們就不得不在項目中添加一段代碼避免 TypeScript 的編譯錯誤;另外,這樣做并不只是對使用 TypeScript 的用戶友好,因為大部分代碼編輯器(Webstorm、VS Code 等)都能識別 TypeScript 的類型聲明,它們可以據(jù)此提供更精準的代碼提示并在用戶傳入錯誤的參數(shù)個數(shù)或類型時給出提示。

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

讓模塊同時在 Node.js 與瀏覽器中運行

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

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

browser 字段有兩種使用方式:

給 browser 字段提供一個文件路徑作為在瀏覽器端使用時的模塊入口,但需要注意的是,打包工具會優(yōu)先使用 browser 字段指定的文件路徑作為模塊入口,所以你的 module 字段會被忽略,這會導致打包工具不會優(yōu)化你的代碼。詳細信息請參考 這個問題 。 如果你只想替換其中一些文件,你可以聲明一個對象。

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

{ 'browser': { './path/to/http.js': './path/to/xhr.js' }}

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

使用各種服務武裝你的項目

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

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

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

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

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

雖然以上的建議大多屬于錦上添花,但這會讓你的模塊對用戶更加友好,希望以上的建議能在你開發(fā)自己的模塊時給你一點幫助。

來自:https://zhuanlan.zhihu.com/p/31499310

標簽: JavaScript
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品久久久久久久久久妞妞 | 国产精品magnet| 久久婷婷国产| 亚洲高清激情| 国产一精品一av一免费爽爽| 成午夜精品一区二区三区软件| 亚洲激情中文在线| 久久a爱视频| 在线一区免费观看| 欧美精品91| 国产精品毛片一区二区三区| 久久av网站| 日韩欧美字幕| 日本不卡在线视频| 欧美亚洲精品在线| 精品亚洲成人| 日本一区二区中文字幕| 久久久久久黄| 国产极品一区| 午夜亚洲福利| 欧美女激情福利| 极品av在线| 欧美aa在线视频| 亚洲三级观看| 欧美日韩在线播放视频| 国产精品日韩精品在线播放| 亚洲国产日韩欧美在线| 国产精品调教| 亚洲欧美专区| 性欧美69xoxoxoxo| 91亚洲人成网污www| 国产精品一级| 青青在线精品| 日韩和欧美的一区| 亚洲三级精品| 亚洲午夜久久| 天堂成人免费av电影一区| 日韩在线中文| 成人污污视频| 欧美国产一级| 国产高潮在线| 国产91在线播放精品| 日韩中文字幕一区二区高清99| 免费av一区| 国内精品99| 欧美精品一区二区久久| 亚洲一级少妇| 91中文字幕精品永久在线| 久久av影视| 久久69成人| 卡一卡二国产精品| 91成人在线| 日韩av网站免费在线| 亚洲精品美女| 亚洲毛片在线| 日韩av二区在线播放| 日韩精品五月天| 丝袜亚洲精品中文字幕一区| 亚洲欧洲另类| 视频一区国产视频| 亚洲久久在线| 欧美一区91| 国产精品激情| 超级白嫩亚洲国产第一| 亚洲深夜视频| 欧美午夜精品一区二区三区电影| 久久精选视频| 99国产精品| 亚洲精品自拍| 欧美精品国产| 狠狠久久伊人| 美女福利一区二区三区| 日韩理论片av| 91久久久久| 91亚洲无吗| 久久影院资源站| 免费在线小视频| 伊人久久成人| 日韩福利在线观看| 精品中文字幕一区二区三区| 综合日韩av| 99在线精品免费视频九九视| 蜜桃一区二区三区在线| 69堂精品视频在线播放| 久久99高清| 亚洲国产不卡| 久久黄色影视| 国产精品蜜芽在线观看| 欧美午夜不卡| 日韩精品电影一区亚洲| 精品三级在线观看视频| 免费久久精品| 国产精品一区亚洲| 色爱av综合网| 亚洲精品女人| 日韩一区自拍| 日本成人在线视频网站| 人在线成免费视频| 亚洲小说春色综合另类电影| 开心激情综合| 影音先锋久久精品| 国产传媒在线观看| 水蜜桃久久夜色精品一区的特点 | 久久av资源| 欧美在线资源| 国产另类在线| 在线观看免费一区二区| 欧美精品导航| 亚洲男人在线| 1024精品一区二区三区| 美女国产精品久久久| 午夜亚洲福利在线老司机| 麻豆精品视频在线| 免费人成网站在线观看欧美高清| 国产精品久久久久久久久久妞妞 | 97在线精品| 日本91福利区| 亚洲一区日韩在线| 三级在线看中文字幕完整版| 日韩精品视频在线看| 国产真实久久| 久久精品一本| 青青青国产精品| 亚洲在线观看| 久久伦理在线| 亚洲黄色网址| 国产精品红桃| 亚洲精品婷婷| 国产精品人人爽人人做我的可爱| 成人在线视频区| 国产欧美一区二区精品久久久| 国产精品日韩| 久久精品99久久无色码中文字幕| 精品国产亚洲日本| 国产精品黄色片| 青青国产91久久久久久| 亚洲网址在线观看| 午夜在线视频观看日韩17c| 99久久夜色精品国产亚洲1000部| 国产一区二区三区亚洲| 国产精品www.| 日韩精品高清不卡| 亚洲一区av| 日韩中文字幕区一区有砖一区 | 国产中文在线播放| 国产精品第一国产精品| 日韩欧乱色一区二区三区在线| 99国产精品视频免费观看一公开| 国产一区二区三区黄网站| 日韩精品一区二区三区免费观影 | 国产精品**亚洲精品| 日韩黄色在线观看| 69精品国产久热在线观看| 美国三级日本三级久久99 | 国产亚洲精品美女久久| 亚洲三级网站| 亚洲精品一二三**| 日韩精品福利一区二区三区| 日韩综合小视频| 欧美亚洲自偷自偷| 欧美交a欧美精品喷水| 麻豆精品视频在线观看视频| 麻豆精品99| 欧美日韩在线观看首页| 日本综合字幕| 欧美91福利在线观看| 激情欧美丁香| 91久久中文| 日本亚洲视频| 国产精品日韩精品在线播放| 精品一区二区三区免费看| 成人免费一区| 91tv亚洲精品香蕉国产一区| 亚洲福利专区| 亚洲精品人人| 精品国产亚洲一区二区三区在线| 黑森林国产精品av| 欧美日韩国产在线一区| 亚洲久久视频| 国产福利一区二区精品秒拍| 91亚洲人成网污www| 精品亚洲美女网站| 每日更新成人在线视频| 日韩高清不卡一区二区| 黄色网一区二区| 美女少妇全过程你懂的久久| 亚洲三级国产| 91亚洲成人| 美女精品在线| 欧美黑人做爰爽爽爽| 亚洲第一精品影视| 日韩av电影一区| 中文一区一区三区高中清不卡免费| 久久五月天小说| 日韩欧美另类中文字幕| 超级白嫩亚洲国产第一| 欧美日韩国产高清| 国产精品2区| 影音先锋久久| 久久精品理论片|