Webpack 09 -- 生产模式下的 css 资源处理

73 阅读2分钟

可有可无的准备工作:

  • 将生产模式和开发模式下的两种配置文件放在一个config的文件夹下。

  • 为了方便两个模式的分别运行,在package.json 文件里面设置快捷运行指令。

1040.png

1 . 处理 CSS 资源

如果按照之前讲的,CSS文件会被打包到 js 文件中,当 js 文件加载时,会创建一个 style 标签来生成样式。但这样对网站来说,会出现闪屏现象。

解决方案: 应该是打包成单独的 CSS 文件,通过 link 标签来引入加载。

步骤:

  • 下载包:

    • npm i mini-css-extract-plugin -D
  • 引入插件:

1042.png


1043.png

  • 插件的配置:

1044.png

1 . 2 CSS 兼容性处理:

  • 下载包

    • npm i postcss-loader postcss postcss-preset-env -D

  • 配置

注意: postcss-loader需要配置在 css-loader的后面,同时又得在 less-loader的前面

  • 可以在package.json里面进行配置,想要浏览器兼容到什么程度。

1045.png

实际上,我们经常这样配置兼容性程度:

1046.png

这三个配置信息我们会取交集,即先包含市面上99% 的浏览器,然后去除这些浏览器已经淘汰的版本,然后再只包含这些浏览器最新的两个版本!!!!

1 . 3 封装样式 loader 函数

less 、sass 文件的loader配置跟 css 文件的配置有很多重复的,如果每个都重写一遍,会显得很冗长,所以可以将重复的代码封装一个函数(返回这些重复的代码),需要时调用即可。

1047.png

注意

  • 除了这些重复的代码,可能不同文件会有自己的独特的loader,所以可以将这些独特的作为参数传进去!!!!

  • 如果没有参数传进去,pre 就会是 undefined,所以此时需要一个过滤函数将没传参数的 pre 过滤掉!!!

1 . 4 CSS 的压缩:

  • 下载插件

    • npm install css-minimizer-webpack-plugin --save-dev
  • 配置

    • 引入后,在webpack.config.js配置文件中,插件部分里 new 出来

1048.png

1 . 5 补:

生产模式下,html和js资源已经默认开启了压缩模式!!!!