webpack@1.15下url-loader的limit屬性無效


      最近在學習過程中發現了一個url-loader的坑,特此記錄一下:

  • webpack版本1.15,url-loader版本是1.1.2,webpack.config.js配置如下:
 1 module: {
 2         loaders: [
 3             {
 4                 test    : /\.css$/, 
 5                 loader  : ExtractTextPlugin.extract('style-loader', 'css-loader')
 6             },
 7             
 8             {
 9                 test    : /\.(gif|png|jpg|woff|svg|ttf|eot)\??.*$/,    //匹配正則     
10                 loader  : 'url-loader',                                           //使用的loader     
11                 options : {                                                       
12                     limit: 100,                            //小於100bit的將會被轉成base64
13                     name : 'resource/[name].[ext]'   //圖片打包的路徑
14                 }
15             }
16         ]
17     }                                    
  • 按照以上配置打包的話,css代碼中url引用以上后綴名的文件的話應該會被打包進發布目錄的/resource/文件下才對啊

  目錄結構:

                  

  css文件:

  

1 body{
2     background: url(../../image/test.jpg) no-repeat center;  //test.jpg 200kb
3 };
  • 運行webpack打包測試:

    

  • 打包沒報錯,但是limit貌似無效,打開css文件

   

  • 好吧還是給轉成base64了,查了多方資料無果,於是想會不會是版本不兼容的問題,畢竟安裝webpack的時候指定安裝1.15版本,而裝url-loader的時候可沒指定,
  • 於是卸載url-loader

 

npm uninstall url-loader --save-dev
  • 裝兩年前的版本總行了吧
npm install url-loader@0.5.9 --save-dev
  • loader配置寫法換成以前的形式:
{
                test    : /\.(gif|png|jpg|woff|svg|ttf|eot)\??.*$/, 
                loader  : 'url-loader?limit=100&name=resource/[name].[ext]'
}
  • 執行webpack打包:

    

  • 為驗證limit生效,把limit值改為100000,刪除dist打包:

    

  • 嗯,看起來問題是解決了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM