什么是loader

webpack只能打包以js结尾的文件,当我们引入其他格式文件时,就需要对应的打包规则.所以loader就是一种打包规则.我们需要配置不同的rules来应用不同的loader.
以.jpg为例
const path = require('path');

module.exports = {
    mode: 'development',
    entry: {
        main: './src/index.js'
    },
    //当满足对应的rules时,应用对应的loader
    module: {
        rules: [{
            test: /\.jpg$/,
            use: {
                loader: 'file-loader'
            } 
        }]
    },
    output: {
        filename: 'bundle.js',
        path: path.resolve(__dirname, 'dist')
    }
}
在使用前需要npm install 对应的loader,详情查看官方文档
当满足某个rule时加载对应的loader,如果想对该loader进行额外的配置,需要在rule中添加对应的规则.详情查看官方api
const path = require('path');

module.exports = {
    mode: 'development',
    entry: {
        main: './src/index.js'
    },
    module: {
        rules: [{
            //文件格式匹配的规则
            test: /\.(jpg|png|gif)$/,
            //使用的规则
            use: {
                //使用的loader
                loader: 'url-loader',
                //loader的配置
                options: {
                    //打包生成文件的格式,路径,大小规则,等等
                    name: '[name]_[hash].[ext]',
                    outputPath: 'images/',
                    limit: 10240
                }
            } 
        }]
    },
    output: {
        filename: 'bundle.js',
        path: path.resolve(__dirname, 'dist')
    }
}
图片loader
  • file-loader: 将图片直接打包,生成单独文件夹
  • url-loader: 可以进行配置当图片内存大时才单独打包,不然就直接生成在js文件里面.这样可以减少http请求

你可能感兴趣的:(什么是loader)