webpack中的url-loader


本文作者: jsweibo

本文链接: https://jsweibo.github.io/2019/07/05/webpack%E4%B8%AD%E7%9A%84url-loader/

摘要

本文主要讲述了:

  1. 作用
  2. 配置
  3. 示例

正文

作用

将引入的文件转换为base64编码,以便于 webpack 打包。

配置

limit

文件大小阈值。

单位是字节。

默认值为undefined。即无视文件体积并将所有文件都转换为base64编码。

fallback

当文件大小大于等于阈值时,使用fallback字段声明的loader读取文件。

默认值为file-loader

esModule

是否以 ESM 规格生成模块

默认值为true

示例

learn_webpack/webpack.config.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
mode: 'development',
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js',
},
module: {
rules: [
{
test: /\.(png|jpe?g|gif)$/,
use: [
{
loader: 'url-loader',
options: {
limit: 80,
},
},
],
},
],
},
plugins: [
new HtmlWebpackPlugin({
title: 'learn_webpack',
template: 'public/index.html',
}),
],
};

learn_webpack/src/index.js

1
import point from './img/point.png';

运行:

1
2
3
#!/usr/bin/env bash

npm webpack

相当于

  1. 若文件大小小于阈值时,文件被转换为base64编码,并被嵌入JavaScript中。
  2. 若文件大小大于等于阈值时,文件将被file-loader读取。

参考资料

本文作者: jsweibo

本文链接: https://jsweibo.github.io/2019/07/05/webpack%E4%B8%AD%E7%9A%84url-loader/


本文对你有帮助?请支持我


支付宝
微信