url-loader和file-loader的区别

本文详细介绍了url-loader和file-loader的区别与用法。url-loader在文件大小低于设定阈值时将其转换为base64编码内置于JS文件中,超过阈值则与file-loader一样将文件输出到指定目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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请求,如果图片太大会导致加载慢(适合小图片

 

在开发环境中,我们可以使用url-loaderfile-loader来加载图片、字体等文件。其中,url-loader将小于指定limit的文件转换为base64编码的DataURL,而file-loader会将大于指定limit的文件复制到输出目录。 下面是使用url-loaderfile-loader的配置: ```javascript module.exports = { module: { rules: [ { test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, loader: 'url-loader', options: { limit: 10000, name: 'img/[name].[hash:7].[ext]' } }, { test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, loader: 'file-loader', options: { limit: 10000, name: 'fonts/[name].[hash:7].[ext]' } } ] } } ``` 在生产环境中,我们通常会将图片、字体等文件进行压缩优化,以减小文件大小。因此,我们可以使用url-loaderfile-loader的limit选项来控制文件的输出方式,以便更好地适应生产环境的需求。 下面是使用url-loaderfile-loader的生产环境配置: ```javascript module.exports = { module: { rules: [ { test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, loader: 'url-loader', options: { limit: 10000, name: utils.assetsPath('img/[name].[hash:7].[ext]'), publicPath: '../' // 修改图片引用路径 } }, { test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, loader: 'file-loader', options: { limit: 10000, name: utils.assetsPath('fonts/[name].[hash:7].[ext]') } } ] } } ``` 在生产环境中,我们通常会将图片字体文件输出至单独的目录中,并修改图片引用路径以便更好地进行缓存优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值