webpack进阶用法实践1

48 阅读2分钟

默认是webpack5

难度 🌟🌟🌟

阅读时间:20min

源代码 base-2分支

gitee.com/xueronggao/…

  1. PostCSS插件【autoprefixer】自动补齐CSS3前缀;

  • **postcss-preset-env 包含 autoprefixer ,因此如果你已经使用了 preset 就无需单独添加它了;【基于webpack5】

  • autoprefixer是css的后置处理器;添加前缀用的;

  • postcss-loader使用 PostCSS 处理 CSS 的 loader。如果要使用最新版本的话,你需要使用webpack v5。

    •   为了使用本 loader,你需要安装 postcss-loaderpostcss
npm install --save-dev postcss-loader postcss

然后添加本 loader 的相关配置到你的 webpack 的配置文件;

相关配置:

  1. 静态资源内联

资源内联意义

  • 页面框架的初始化脚本
  • 请求层面减少http网络请求,小图片或者字体内联(asset/inline)

资源模块 | webpack 中文文档

  • 在 webpack 5 之前,通常使用:

    • raw-loader 将文件导入为字符串
    • url-loader 将文件作为 data URI 内联到 bundle 中
    • file-loader 将文件发送到输出目录
  • 资源模块类型(asset module type),通过添加 4 种新的模块类型,来替换所有这些 loader:

    • asset/resource 发送一个单独的文件并导出 URL。之前通过使用 file-loader 实现。【处理字体】【处理图片】
    • asset/inline 导出一个资源的 data URI。之前通过使用 url-loader 实现。【处理svg】【处理图片】
    • asset/source 导出资源的源代码。之前通过使用 raw-loader 实现。【处理文件.txt/.excel】
    • asset 在导出一个 data URI 和发送一个单独的文件之间自动选择,8kb。之前通过使用 url-loader,并且配置资源体积限制实现。【处理图片】
  1. html内联/js内联/图片/字体

search.html

webpack.prod.js

Npm run build 结果:

效果:

  1. Css 内联【没啥用】

style-loader

  1. 多页面打包应用通用解决方案

源代码 mpa分支

gitee.com/xueronggao/…

首先约定文件夹放到src下;

主要入口都定义为index.js,方便匹配文件;

webpack.prod.js

打包结果: