• 39-3 webpack 图片引用 Loader 的安装使用


    如果你在CSS中引用了图片,那么:

    这里两张照片  1张a 一张b  a是大于8KB b 是小于8KB的:

     直接打包会报错 我们需要 图片处理,我们使用url-loader来处理,依然先安装url-loader:

    npm install --save-dev url-loader

    安装即可 版本自己加  或 不加

    添加配置:

    module.exports = {
      module: {
        rules: [
          {
            test: /.(png|jpg|gif)$/,
            use: [
              {
                loader: 'url-loader',
                options: {
                  limit: 8192
                }
              }
            ]
          }
        ]
      }
    }

    其中 test 中后可以配置多个后缀名,用|分隔即可,limit是限制大小(单位是 b)limit默认大小为8KB,引用的图片大小 小于 这个limit的话 会通过base64显示出来的,超出的话则 要打包不了,这时候我们应该安装file-loader 进行解析,当然 limit 是可控的,其次test也是你自己➕:

    然后打包运行即可,,

    如果图片地址显示的是:

    url([object object])

    2总办法决绝,第一种: url-loader  配置里面的options 添加下面 esModule :false 即可 第二种就是安装file-loader】证明大小超了

    如果上面都配了如何都不显示!!!那就是  ::::
    你url loader 安装了  然后你  file loader 也安装了  他们两个的test属性都可以改文件格式名的,会冲突! 所以这里推荐使用一个即可!!!!!!!那就是FileLoader 。【这两很容易冲突 因为都是处理图片的 冲突的来源就是 后缀名】
    所以这里推荐解决方案: 用base64处理的图片类型就别在file-loader中写进去,而且base64处理的图片注意limit限制。

    如果图片大于你设置的limit 那么就安装 file-loader  , 命令: npm install file-loader --save-dev

    其次添加 配置:

    module.exports = {
      module: {
        rules: [
          {
            test: /.(png|jpe?g|gif)$/i,
            use: [
              {
                loader: 'file-loader',
              },
            ],
          },
        ],
      },
    };

    如果出错:

    TypeError [ERR_INVALID_ARG_TYPE]: The "from" argument must be of type string

    那么就是版本太高了,先卸载:

    npm uninstall file-loader

    然后指定版本3.0.1  因为我的webpack 是 3.6.0版本的!!

    npm install file-loader@3.0.1  --save-dev

    这就解决了

    安装了 你尝试用 比url loader 中 limt 大的图片进行打包,会发现也是不显示 而且 是一个直接地址:

     那么 这个图片打包的时候  会自动加载dist文件夹中,你尝试把它拖到根路径就会显示,那怎么解决呢:

     加入了这个 那么 以后涉及到了凡是url 的  他都会在前面加入浅醉  dist/xxxxxxxx,,所以我们就可以正常访问到图片了:

    以后不用这样写 这样知识 WEBPACK  脚手架都给你弄好了。。


    为了归档图片 【分文件夹 、管理】 ,这里可以给 图片 在 dist文件夹中 自定义文件夹 和 文件名:【下面是一些命名属性说明】

    所以,我们可以在file-loader 中的 options 中添加上name属性:

    直接写的话 他会认为是字符串,就写死了【比如img  和  .  】,  / 是分目录,然后 带括号的下面解析:

     [name]:获取图片原来的名字


     [hash:5]:为了防止图片名称冲突,使用hash值,但是我们只保留5位

     [ext]:使用图片原来的扩展名

    尝试打包 会在dist 文件夹下创建你定义的名字,然后: 

    本文来自博客园,作者:咸瑜,转载请注明原文链接:https://www.cnblogs.com/bi-hu/p/15087493.html

  • 相关阅读:
    MyEclipse使用总结——MyEclipse10安装SVN插件
    SVN的安装和配置
    Git
    myeclipse 怎么安装与激活
    jQuery
    sql server 2008
    原问题:身份证为什么只有15位
    QTP10破解方法及mgn-mqt82.exe下载
    WARNING [Project: :app] To shrink resources you must also enable ProGuard
    your local changes would be overwritten by merge. commit stash or revert them to proceed. view them
  • 原文地址:https://www.cnblogs.com/bi-hu/p/15087493.html
Copyright © 2020-2023  润新知