zoukankan      html  css  js  c++  java
  • url-loader和file-loader区别

    url-loader解决的问题:

    如果图片较多,会发很多http请求,会降低页面性能。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即可。

    url-loader作用

    如果页面图片较多,发很多http请求,会降低页面性能。这个问题可以通过url-loader解决。url-loader会将引入的图片编码,生成dataURl并将其打包到文件中,最终只需要引入这个dataURL就能访问图片了。当然,如果图片较大,编码会消耗性能。因此url-loader提供了一个limit参数,小于limit字节的文件会被转为DataURl,大于limit的还会使用file-loader进行copy

    file-loader作用

    在css文件中定义background的属性或者在html中引入image的src,我们知道在webpack打包后这些图片会打包至定义好的一个文件夹下,和开发时候的相对路径会不一样,这就会导致导入图片路径的错误。而file-loader正是为了解决此类问题而产生的,他修改打包后图片的储存路径,再根据配置修改我们引用的路径,使之对应引入

    联系

    url-loader内部封装了file-loader。url-loader不依赖于file-loader,即使用url-loader时,只需要安装url-loader即可,不需要安装file-loader。通过上面的介绍,我们可以看到,url-loader工作分两种情况:1.文件大小小于limit参数,url-loader将会把文件转为DataURL;2.文件大小大于limit,url-loader会调用file-loader进行处理,参数也会直接传给file-loader。因此我们只需要安装url-loader即可

    file-loader将图片移动到dist目录(或者outputPath定义的目录)下并返回一个相对于dist的路径

    url-loader相比file-loader多了一个limit配置项(1024 = 1kb),在超过limit的时候执行和file-loader相同的功能,当小于limit时会将文件打包成base64文件到js打包文件里

    rules: [
        {
          test: /.(png|jpg|gif)$/,
          use: {
            loader: 'url-loader',
            options: {
              name: '[name]_[hash:6].[ext]',
              outputPath: 'images/',
              // url-loader的limit配置项
              limit: 2048
            }
          }
        }
      ]
    

      url-loader会将图片转成base64文件放在打包js文件里,节约了一次HTTP请求,如果图片太大会导致加载慢(适合小图片)

  • 相关阅读:
    dev DEV控件:gridControl常用属性设置
    C# ListView用法详解
    LeetCode 22_ 括号生成
    LeetCode 198_ 打家劫舍
    LeetCode 46_ 全排列
    LeetCode 121_ 买卖股票的最佳时机
    LeetCode 70_ 爬楼梯
    LeetCode 53_ 最大子序和
    LeetCode 326_ 3的幂
    LeetCode 204_ 计数质数
  • 原文地址:https://www.cnblogs.com/ygunoil/p/14339311.html
Copyright © 2011-2022 走看看