美文网首页
第五章:原理(深入浅出 Webpack 笔记)

第五章:原理(深入浅出 Webpack 笔记)

作者: 欢欣的膜笛 | 来源:发表于2020-12-05 00:03 被阅读0次

基本概念

  • Entry:入口,Webpack 执行构建的第一步将从 Entry 开始,可抽象成输入。
  • Module:模块,在 Webpack 里一切皆模块,一个模块对应着一个文件。
    Webpack 会从配置的 Entry 开始递归找出所有依赖的模块。
  • Chunk:代码块,一个 Chunk 由多个模块组合而成,用于代码合并与分割。
  • Loader:模块转换器,用于把模块原内容按照需求转换成新内容。
  • Plugin:扩展插件,在 Webpack 构建流程中的特定时机会广播出对应的事件,插件可以监听这些事件的发生,在特定时机做对应的事情。

流程细节

Webpack 的构建流程可以分为以下三大阶段:

  • 初始化:启动构建,读取与合并配置参数,加载 Plugin,实例化 Compiler
  • 编译:从 Entry 出发,针对每个 Module 串行调用对应的 Loader 去翻译文件内容,再找到该 Module 依赖的 Module,递归地进行编译处理。
  • 输出:对编译后的 Module 组合成 Chunk,把 Chunk 转换成文件,输出到文件系统。

常用 Loaders

加载文件
  • raw-loader:把文本文件的内容加载到代码中去。
  • file-loader:把文件输出到一个文件夹中,在代码中通过相对 URL 去引用输出的文件。
  • url-loader:和 file-loader 类似,但是能在文件很小的情况下以 base64 的方式把文件内容注入到代码中去。
  • source-map-loader:加载额外的 Source Map 文件,以方便断点调试。
  • svg-inline-loader:把压缩后的 SVG 内容注入到代码中。
  • node-loader:加载 Node.js 原生模块 .node 文件。
  • image-loader:加载并且压缩图片文件。
  • json-loader:加载 JSON 文件。
  • yaml-loader:加载 YAML 文件。
编译模版
转换脚本语言
转换样式文件
  • css-loader:加载 CSS,支持模块化、压缩、文件导入等特性。
  • style-loader:把 CSS 代码注入到 JavaScript 中,通过 DOM 操作去加载 CSS
  • sass-loader:把 SCSS/SASS 代码转换成 CSS
  • postcss-loader:扩展 CSS 语法,使用下一代 CSS
  • less-loader:把 Less 代码转换成 CSS 代码。
  • stylus-loader:把 Stylus 代码转换成 CSS 代码。
检查代码
其它
  • vue-loader:加载 Vue.js 单文件组件。
  • i18n-loader:加载多语言版本,支持国际化。
  • ignore-loader:忽略掉部分文件。
  • ui-component-loader:按需加载 UI 组件库,例如在使用 antd UI 组件库时,不会因为只用到了 Button 组件而打包进所有的组件。

常用 Plugins

用于修改行为
用于优化
其它

相关文章

网友评论

      本文标题:第五章:原理(深入浅出 Webpack 笔记)

      本文链接:https://www.haomeiwen.com/subject/ndjwwktx.html