正常来讲,一个文件只能被一个loader处理。当一个文件要被多个loader处理,那么一定指定loader执行的先后顺序:比如js文件先执行 eslint 再执行 babel
问题:假如我设置了七八个loader处理相应的文件,虽然test正则校验文件名称后缀不通过,但是每个文件还是都要经过一下这七八个loader,设置oneOf就是处理这个,如果找到了某一个文件的处理loader,就直接用,不用再过后面的loader了,提高构建速度。
注意:不能有两个配置处理同一种类型文件。比如:eslint-loader和babel-loader都处理同一种文件类型,所以可以把eslint-loader提取出来。
具体写法如下:
rules: [
{
oneOf: [
// loader设置
{}
]
}
]
oneOf的作用就是优化生产环境的打包构建速度。