webpack oneOf和enforce的使用方法

oneOf

webpack原本的loader是将每个文件都过一遍,比如有一个js文件 rules中有10个loader,第一个是处理js文件的loader,当第一个loader处理完成后webpack不会自动跳出,而是会继续拿着这个js文件去尝试匹配剩下的9个loader,相当于没有break。
而oneOf就相当于这个break

用法

rules:[
            oneOf:[
                {
                    test:/\.css$/,
                    use:[...common_css_loader]
                },
                {
                    test:/\.less$/,
                    use:[...common_css_loader,'less-loader']
                },
                {
                    test:/\.html/,
                    loader:'html-loader'
               	}
           		]
        ]

在oneOf里面的loader一旦匹配成功则会跳出匹配,相当于break语句


enforce

loader的执行顺序是从下往上的,但是有时候我们想先执行某个loader 就要把它移到最后边这样非常的不方便。
enforce的作用是设置loader的优先级

enforce有以下几个配置项

  1. pre 优先处理
  2. normal 正常处理(默认)
  3. inline 其次处理
  4. post 最后处理

执行loader的时候会根据enforce的配置来安排顺序,如果设置了pre则会优先执行


使用方法

				 {
                test:/\.js$/,
                exclude:/node_modules/,
                loader:'eslint-loader',
                enforce:'pre'  
                }

你可能感兴趣的:(webpack)