webpack5(五)-- loader

发布日期:2020-10-12 阅读量:930

1. 作用

   将不同类型的文件转换为webpack可识别的模块。

2. 分类

   pre:前置loader

   normal:普通loader

   inline:内联loader

   post:后置loader

3. 执行顺序

   pre > normal > inline > post

   相同级别:从下到上,从右到左

   通过配置 enforce:"pre|normal|post"(inline除外) 来控制执行优先级,例如:

    module: {
        rules: [
            {
                enforce: 'pre',
                test: '/^.js$/',
                loader: loader
            }
        ]
    }

4. inline loader

   通过import语句显示指定loader,例如:

    import Styles from 'style-loader!css-loader?modules!./styles.css'
    /**
     * 使用css-loader和style-loader处理styles.css
     * 通过!将资源的loader分开
     * modules是给css-loader传递的参数
     */

   通过添加前缀来跳过其他级别loader:例如

    // 添加!跳过normal loader
    import Styles from '!style-loader!css-loader?modules!./styles.css'
    
    // 添加-!跳过pre/normal loader
    import Styles from '-!style-loader!css-loader?modules!./styles.css'
    
    // 添加!!跳过pre/normal/post loader
    import Styles from '!!style-loader!css-loader?modules!./styles.css'

5. 种类

   同步loader、异步loader、Raw loader、Pitching loader