在加载loader时候,默认每个文件都会被所有的rules检查,但我们很多文件都只需要一条rules就可以解析完成,这无疑减慢了打包效率,因此可以考虑使用rules的oneOf规则,可以保证文件从oneOf里面的规则从上到下检查,满足一个rule之后就可以不进行下面的loader(需要做好顺序,而且不能同一个文件需要两个loader规则同时处理
所以如果有两个文件都需要不同的rule处理的时候把其中一个loader提取到oneOf外面,就可以了
比如对于js文件的eslint-loader和babelloader,我们考虑把先执行的eslint-loader放到oneOf的上方就可以了。
const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin"); //html模板
const MiNiCssExtractPlugin = require("mini-css-extract-plugin"); //提取出css
const OptimizeCssAssetsWebpackPlugin = require("optimize-css-assets-webpack-plugin"); //压缩css
process.env.NODE_ENV = "production";
//复用css的loader
let commonCssLoader = [
{
loader: MiNiCssExtractPlugin.loader,
options: {
publicPath: "../", //避免css中的路径引入错误
},
}, //代替style标签而是引入css的形式
"css-loader",
{
//把css压缩
loader: "postcss-loader"<