首页 > 建站教程 > 前端框架 >  webpack5学习笔记:url-loader和file-loader正文

webpack5学习笔记:url-loader和file-loader

# file-loader

## 介绍

1. file-loader可以处理 import/require 方式引入的资源文件,并输出到指定文件夹  ❄ webpack5少用了


## 安装使用

### 安装 `npm install file-loader -D`

### webpack配置

module: {

    rules: [

        {

            test: /\.(png|jpe?g|svg|gif)$/,

            use: 'file-loader'

        }

    ]

}

1. 什么都不配置,直接就将资源文件打包在 webpack 配置的打包路径的根目录

2. js中, `require('./img/1.jpg')` 在file-loader 4.X,返回的是资源,在5.x以后返回的是对象,通过 `require('./img/1.jpg').default` 才能拿到资源

3. js中,除了 require 引入资源,还可以用 `import xxx from './img/1.jpg` 的方式引入资源


### webpack配置之重命名、路径

{

    test: /\.(png|jpe?g|svg|gif)$/,

    use: [

        {

            loader: 'file-loader',

            options: {

                name: 'img/[name].[hash:6].[ext]',

                // outputPath: 'img'  // 一般不这么用,直接在 name 上加上路径

            }

        }

    ]

}

1. 常见占位符:

    [ext] 处理文件的扩展名

    [name] 处理文件的文件名

    [hash] 文件的内容,使用MD4的散列函数处理,生成一个128位的hash值(32个十六进制)

    [contentHash] 在file-loader中和 hash 一致,但在webpack其他地方不一样

    [hash:<length>] hash的长度,默认为32位

    [path] 文件相对于webpack配置文件的路径



# url-loader

## 介绍

1. url-loader和file-loader差不多,但是它可以将小图转成base64 (默认将所有图片都转成base64)。   ❄ webpack5少用了


## 安装使用

### 安装 `npm install url-loader -D`

### webpack配置

module: {

    rules: [

        {

            test: /\.(png|jpe?g|svg|gif)$/,

            use: 'url-loader'

        }

    ]

}


### webpack配置之重命名、路径

{

    test: /\.(png|jpe?g|svg|gif)$/,

    use: [

        {

            loader: 'file-loader',

            options: {

                name: 'img/[name].[hash:6].[ext]',

                limit: 10 * 1024  // 限制转base64的大小,byte,这里是10KB

                // outputPath: 'img'  // 一般不这么用,直接在 name 上加上路径

            }

        }

    ]

}