中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

怎么開發(fā)WebpackLoader-創(chuàng)新互聯(lián)

本篇內(nèi)容主要講解“怎么開發(fā)Webpack Loader”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么開發(fā)Webpack Loader”吧!

成都創(chuàng)新互聯(lián)公司長期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為襄陽企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、成都網(wǎng)站制作,襄陽網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

一、單一任務(wù)

loaders可以被鏈?zhǔn)秸{(diào)用,為每一步創(chuàng)建一個loader而非一個loader做所有事情。也就是說,在非必要的狀況下沒有必要將他們轉(zhuǎn)換為js。

例如:通過查詢字符串將一個字符串模板轉(zhuǎn)化為html。

如果你寫了個loader。做了所有事情那么你違背了loader的第一條要求。你應(yīng)該為每一個task創(chuàng)建一個loader并且通過管道來使用它們

(1)ade-loader: 轉(zhuǎn)換模板為一個module

(2) apply-loader:創(chuàng)建一個module并通過查詢參數(shù)來返回結(jié)果

(3)html-loade: 創(chuàng)建一個處理html并返回一個string的模塊

二、創(chuàng)建moulde話的模塊,即正常的模塊

loader產(chǎn)出的module應(yīng)該和遵循和普通的module一樣的設(shè)計原則。

舉個例子,下面這樣設(shè)計是不好的,沒有模塊化,依賴全局狀態(tài)。

怎么開發(fā)Webpack Loader

三、盡量表明該loader是否可以緩存

大部分loaders是cacheable,所以應(yīng)該標(biāo)明是否cacheable,只需要在loader里面調(diào)用即可。

怎么開發(fā)Webpack Loader

四、不要在運(yùn)行和模塊之間保存狀態(tài)

(1)一個loader相對于其他編譯后的模塊應(yīng)該是獨立的。 除非其可以自己處理這些狀態(tài)

(2)一個loader相對于同一模塊之前的編譯過程應(yīng)該是獨立的。

五、標(biāo)明依賴

如果該loader引用了其他資源(例如文件系統(tǒng)), 必須聲明它們。這些信息用來是緩存的loader失效并且重新編譯它們。

怎么開發(fā)Webpack Loader

六、解析依賴

很多語言都提供了一些規(guī)范來聲明依賴,例如css中的 @import 和 url(...)。這些依賴應(yīng)該被模塊系統(tǒng)所解析。

下面是兩種解決方式:

1、將它們轉(zhuǎn)化成require

2、 用this.resolve方法來解析路徑

下面是兩個示例:

1、css-loader: 將依賴轉(zhuǎn)化成require,即用require來替換@import和 url(...),解析對其他樣式文件的依賴

2、less-loader: 不能像css-loader那樣做,因為所有的less文件需要一起編譯來解析變量和mixins。因此其通過一個公共的路徑邏輯來擴(kuò)展less編譯過程。這個公共的邏輯使用this.resolve來解析帶有module系統(tǒng)配置項的文件。例如aliasing, custom module directories等。

怎么開發(fā)Webpack Loader

如果語言僅僅接受相對urls(如css中url(file) 總是代表./file),使用~來說明成模塊依賴.

七、抽離公共代碼

extract common code 我感覺還是翻譯成上面的標(biāo)題比較好。其實所有語言都遵循該思想,即封裝

不要寫出來很多每個模塊都在使用的代碼,在loader中創(chuàng)建一個runtime文件,將公共代碼放在其中

八、避免寫入絕對路徑

不要把絕對路徑寫入到模塊代碼中。它們將會破壞hash的過程當(dāng)項目的根目錄發(fā)生改變的時候。應(yīng)該使用loader-utils的 stringifyRequest方法來絕對路徑轉(zhuǎn)化為相對路徑。

例子:

怎么開發(fā)Webpack Loader

九、使用peerDependencies來指明依賴的庫

使用peerDependency允許應(yīng)用開發(fā)者去在package.json里說明依賴的具體版本。這些依賴應(yīng)該是相對開放的允許工具庫升級而不需要重新發(fā)布loader版本。簡而言之,對于peerDependency依賴的庫應(yīng)該是松耦合的,當(dāng)工具庫版本變化的時候不需要重新變更loader版本。

十、可編程對象作為查詢項

有些情況下,loader需要某些可編程的對象但是不能作為序列化的query參數(shù)被方法解析。例如less-loader通過具體的less-plugin提供了這種可能。這種情況下,loader應(yīng)該允許擴(kuò)展webpack的options對象去獲得具體的option。為了避免名字沖突,基于loader的命名空間來命名是很必要的。

怎么開發(fā)Webpack Loader

到此,相信大家對“怎么開發(fā)Webpack Loader”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

當(dāng)前文章:怎么開發(fā)WebpackLoader-創(chuàng)新互聯(lián)
標(biāo)題來源:http://www.2m8n56k.cn/article8/dccpop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作全網(wǎng)營銷推廣營銷型網(wǎng)站建設(shè)、微信公眾號、網(wǎng)站策劃、App設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
主站蜘蛛池模板: 高清在线一区二区 | 久久久久久久久久久福利观看 | 亚洲在成人网在线看 | www.夜色.com| 亚洲欧美视频一区二区 | 中文字幕视频在线观看 | 一级视频网站 | 国产一区二区三区日韩欧美 | 影音先锋色先锋女同另类 | 日本一本久道 | 国产三级高清 | 韩日一区二区 | 男人躁女人躁的好爽免费视频 | 国产一国产一级毛片视频在线 | 亚洲一区二区三区久久久久 | 亚洲欧美另类视频 | 亚洲国产成人久久一区www | 国产99视频精品免视看9 | 亚洲视色| 九九热视频在线免费观看 | 精品三级在线观看 | 国产高清在线精品二区一 | 国产精品亚洲第五区在线 | 国产一级二级三级视频 | 久久国内免费视频 | 亚洲一区日韩一区欧美一区a | 在线免费国产 | 精品久久久久久乐 | 国产精品亚洲专区在线播放 | 美女日韩在线观看视频 | 亚洲性免费 | 亚洲免费成人在线 | 一级a级国产不卡毛片 | 亚洲国产成人久久综合一区 | 蜜桃欧美性大片 | 一级a爰片久久毛片 | 精品久久久久久国产 | 亚洲精品美女国产一区 | 在线观看国产精品日本不卡网 | 高清国产在线播放成人 | 女初高中福利视频在线观看 |