亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

webpack file-loader和url-loader的區別

2019-11-19 12:17:30
字體:
來源:轉載
供稿:網友

1.前言

如果我們希望在頁面引入圖片(包括img的src和background的url)。當我們基于webpack進行開發時,引入圖片會遇到一些問題。

其中一個就是引用路徑的問題。拿background樣式用url引入背景圖來說,我們都知道,webpack最終會將各個模塊打包成一個文件,因此我們樣式中的url路徑是相對入口html頁面的,而不是相對于原始css文件所在的路徑的。這就會導致圖片引入失敗。這個問題是用file-loader解決的,file-loader可以解析項目中的url引入(不僅限于css),根據我們的配置,將圖片拷貝到相應的路徑,再根據我們的配置,修改打包后文件引用路徑,使之指向正確的文件。

另外,如果圖片較多,會發很多http請求,會降低頁面性能。這個問題可以通過url-loader解決。url-loader會將引入的圖片編碼,生成dataURl。相當于把圖片數據翻譯成一串字符。再把這串字符打包到文件中,最終只需要引入這個文件就能訪問圖片了。當然,如果圖片較大,編碼會消耗性能。因此url-loader提供了一個limit參數,小于limit字節的文件會被轉為DataURl,大于limit的還會使用file-loader進行copy。

url-loader和file-loader是什么關系呢?簡答地說,url-loader封裝了file-loader。url-loader不依賴于file-loader,即使用url-loader時,只需要安裝url-loader即可,不需要安裝file-loader,因為url-loader內置了file-loader。通過上面的介紹,我們可以看到,url-loader工作分兩種情況:1.文件大小小于limit參數,url-loader將會把文件轉為DataURL;2.文件大小大于limit,url-loader會調用file-loader進行處理,參數也會直接傳給file-loader。因此我們只需要安裝url-loader即可。

推薦文檔:

file-loader: https://github.com/webpack-contrib/file-loader

url-loader: http://www.49028c.com/article/122936.htm

2.loader中的參數

上面提到url-loader的參數和file-loader的參數,那么loader的參數是個什么概念呢?loader的參數用來自定義loader處理文件時的工作特性。下面以url-loader為例,介紹一下webpack的loader中的參數。

首先看下面的例子:

module.exports = { // 入口文件路徑,__dirname是根目錄 entry: __dirname + '/src/main.js', // 打包生成文件 output: {  path: __dirname + '/output',  filename: 'main.js' },  module: {  rules: [   {    test: //.css$/,    use: ['style-loader', 'css-loader']   },   {    test: //.jpeg$/,    use: [     {      loader: 'url-loader',      options: {       limit: '1024'      }     },    ]   }  ] }}

其中,url-loader的配置中的options屬性表示的就是url-loader的參數,還有一種等價的寫法:

{ test: //.jpeg$/, use: 'url-loader?limit=1024}

如果有多個參數,就用 ‘&' 連接起來。和http請求中的參數類似。正如前面介紹的,limit這個參數就是告訴url-loader,在文件小于多少個字節時,將文件編碼并返回DataURL。此外url-loader還有一些用于file-loader的參數。我們知道,file-loader的作用是將文件復制到其他目錄。file-loader提供了一系列參數允許我們自定義諸如輸出文件、文件名規則、發布路徑等特性的參數。下面介紹一下這些參數。

3.url-loader的參數

先看下配置好的代碼:

module.exports = { // 入口文件路徑,__dirname是根目錄 entry: __dirname + '/src/main.js', // 打包生成文件 output: {  path: __dirname + '/output',  filename: 'main.js' },  module: {  rules: [   {    test: //.css$/,    use: ['style-loader', 'css-loader']   },   {    test: //.jpeg$/,    use: 'url-loader?limit=1024&name=[path][name].[ext]&outputPath=img/&publicPath=output/',   }  ] }}

這里涉及到了4個參數:limit、name、outputPath、publicPath。其中limit已經說明過。file-loader相關的是name、outputPath和publicPath。下面解釋一下這3個參數

name表示輸出的文件名規則,如果不添加這個參數,輸出的就是默認值:文件哈希。加上[path]表示輸出文件的相對路徑與當前文件相對路徑相同,加上[name].[ext]則表示輸出文件的名字和擴展名與當前相同。加上[path]這個參數后,打包后文件中引用文件的路徑也會加上這個相對路徑。

outputPath表示輸出文件路徑前綴。圖片經過url-loader打包都會打包到指定的輸出文件夾下。但是我們可以指定圖片在輸出文件夾下的路徑。比如outputPath=img/,圖片被打包時,就會在輸出文件夾下新建(如果沒有)一個名為img的文件夾,把圖片放到里面。

publicPath表示打包文件中引用文件的路徑前綴,如果你的圖片存放在CDN上,那么你上線時可以加上這個參數,值為CDN地址,這樣就可以讓項目上線后的資源引用路徑指向CDN了。

4.安裝url-loader

npm install --save-dev url-loader

5.demo

https://github.com/KIDFUCKER/webpack-demo.git

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲高清一区二| 国产欧美日韩综合精品| 国产精品精品一区二区三区午夜版| 神马国产精品影院av| 美女av一区二区| 国产女同一区二区| 亚洲欧美日韩一区二区三区在线| 久久久久久久影视| 欧美大片大片在线播放| 九色成人免费视频| 亚洲自拍偷拍福利| 日韩av在线影视| 成人免费黄色网| 91在线观看免费观看| 国产精品久久婷婷六月丁香| 亚洲а∨天堂久久精品喷水| 91在线视频精品| 国产精品第三页| 亚洲护士老师的毛茸茸最新章节| 欧美天堂在线观看| 97免费视频在线| 国产日韩亚洲欧美| 国产在线a不卡| 国产成人免费av| 欧美xxxwww| 在线视频精品一| 91大神在线播放精品| 欧美xxxwww| 538国产精品视频一区二区| 国产一区视频在线播放| 成人在线视频福利| 日韩亚洲国产中文字幕| 亚洲欧美一区二区激情| 久久精品这里热有精品| 亚洲精品在线91| 国产欧美亚洲精品| 日本精品久久电影| 国产精品va在线播放| 成人免费淫片视频软件| 欧美日韩免费看| 国产精品劲爆视频| 国产suv精品一区二区三区88区| www高清在线视频日韩欧美| www.xxxx精品| 亚洲欧洲午夜一线一品| 6080yy精品一区二区三区| 国产在线不卡精品| 亚洲精品97久久| 国产伦精品免费视频| 亚洲精品久久久久久久久久久| 青青久久aⅴ北条麻妃| 国产91精品在线播放| 色久欧美在线视频观看| 国产九九精品视频| 亚洲伊人成综合成人网| 欧美性一区二区三区| 国产精品电影久久久久电影网| 欧美大成色www永久网站婷| 搡老女人一区二区三区视频tv| 亚洲一区二区三区成人在线视频精品| 国产丝袜精品第一页| 欧美多人乱p欧美4p久久| 日韩激情视频在线| 亚洲第一免费播放区| 97色在线播放视频| 亚洲另类欧美自拍| 欧美日韩激情美女| 亚洲bt欧美bt日本bt| 久久成人av网站| 国产va免费精品高清在线| 日韩欧美国产网站| 热re99久久精品国产66热| 精品成人久久av| www国产亚洲精品久久网站| 成人性生交大片免费观看嘿嘿视频| 国产成人精品优优av| 精品亚洲男同gayvideo网站| 国产一区深夜福利| 精品久久久视频| 亚洲另类xxxx| 欧美寡妇偷汉性猛交| 国自产精品手机在线观看视频| 国产亚洲欧美日韩一区二区| 欧美中在线观看| 国产精品日韩久久久久| 亚洲人成自拍网站| 亚洲国产精品va| 国产小视频国产精品| 久久久91精品国产一区不卡| 日韩在线欧美在线国产在线| 欧美亚洲另类激情另类| 亚洲美女动态图120秒| 亚洲大胆美女视频| 中文字幕亚洲无线码a| 国产一区二区精品丝袜| 亚洲欧美变态国产另类| 另类图片亚洲另类| 国产午夜精品美女视频明星a级| 国产91ⅴ在线精品免费观看| 丝袜美腿亚洲一区二区| 久久久99免费视频| 欧美一级电影在线| 日本不卡视频在线播放| 亚洲xxx视频| 欧美日韩性视频在线| 国产精品三级久久久久久电影| 96精品久久久久中文字幕| 国产主播喷水一区二区| www国产亚洲精品久久网站| 日韩中文字幕网| 日韩激情在线视频| 亚洲人成欧美中文字幕| 国产在线视频2019最新视频| 日韩美女免费观看| 成人激情av在线| 日韩精品免费一线在线观看| 国产不卡一区二区在线播放| 亚洲国产精品成人av| 国产精品综合久久久| 亚洲视频免费一区| 狠狠操狠狠色综合网| 亚洲乱码av中文一区二区| 亚洲欧洲中文天堂| 久久久久久免费精品| 久久91超碰青草是什么| 欧美日韩爱爱视频| 久久国产一区二区三区| 国产精品久久二区| 中文字幕亚洲一区二区三区五十路| 91九色国产在线| 中文字幕亚洲欧美日韩2019| 欧美激情精品久久久久久| 91精品国产91久久久久久吃药| 欧美亚洲激情视频| 亚洲欧美精品伊人久久| 91精品国产高清久久久久久91| 欧美日韩亚洲网| 久久成人精品一区二区三区| 亚洲成人xxx| 国产精品欧美在线| 亚洲精品久久久一区二区三区| 免费成人高清视频| 久久久久久这里只有精品| 欧美丰满片xxx777| 成人写真视频福利网| 国产日韩在线精品av| 亚洲国产高清高潮精品美女| 久久久久在线观看| 毛片精品免费在线观看| 久久精品最新地址| 8050国产精品久久久久久| 日韩av在线免费看| 国产精品永久免费| 午夜免费在线观看精品视频| 久久人人爽人人爽爽久久| 亚洲福利精品在线| 欧美自拍视频在线| 日韩欧美在线一区| 国产精品高潮视频| 精品国产福利视频| 亚洲午夜国产成人av电影男同| 欧美第一黄色网| 欧美激情一区二区三区久久久| 亚洲剧情一区二区|