一開始用url-loader的時候,想着為什么npm run build的時候,不能將圖片打包到build images的目錄下,原來,沒有自己看這樣的說明:
loader 后面 limit 字段代表圖片打包限制,這個限制並不是說超過了就不能打包,而是指當圖片大小小於限制時會自動轉成 base64 碼引用,
limit參數,代表如果小於大約8k則會自動幫你壓縮成base64編碼的圖片,否則拷貝文件到生產目錄,
這樣在小於8K的圖片將直接以base64的形式內聯在代碼中,可以減少一次http請求。
忽略了這樣的說明。
理解了這些就知道,url-loader是通過limit這樣的一個值的大小,來判斷,小於其值的轉base64,大於其值的打包到相應的生產目錄下;
而file-loader是直接將圖片打包到生產目錄下。
{ test: /\.(png|jpg)$/, loader: 'url-loader?limit=8192&name=assets/images/[hash:8].[name].[ext]' //limit參數,代表如果小於大約4k則會自動幫你壓縮成base64編碼的圖片,否則拷貝文件到生產目錄 //name后面是打包后的路徑; //loader 后面 limit 字段代表圖片打包限制,這個限制並不是說超過了就不能打包,而是指當圖片大小小於限制時會自動轉成 base64 碼引用 //上例中大於8192字節的圖片正常打包,小於8192字節的圖片以 base64 的方式引用。 }