webpack loader & pulgin All In One
webpack loader & pulgin All In One
- loader
https://webpack.js.org/concepts/loaders/
- plugin
https://webpack.js.org/concepts/plugins/
const pluginName = 'ConsoleLogOnBuildWebpackPlugin';
class ConsoleLogOnBuildWebpackPlugin {
apply(compiler) {
compiler.hooks.run.tap(pluginName, compilation => {
console.log('The webpack build process is starting!!!');
});
}
}
module.exports = ConsoleLogOnBuildWebpackPlugin;
webpack
一、webpack 的打包原理
识别入口文件
通过逐层识别模块依赖
(Commonjs、amd 或者 es6 的 import,webpack 都会对其进行分析,来获取代码的依赖)
webpack 做的就是分析代码
,转换代码
,编译代码
,输出代码
最终形成打包后的代码
二、什么是 loader
loader 是文件加载器,能够加载资源文件,并对这些文件进行一些处理,诸如编译、压缩等,最终一起打包到指定的文件中
处理一个文件可以使用多个 loader,多个 loader 的执行顺序和配置中的顺序
是相反
的,即最后一个loader 最先执行,第一个loader最后执行, 从后向前
执行/从右向左
执行
第一个执行的 loader 接收源文件
内容作为参数,其它 loader 接收前一个 loader 执行后的返回值
作为参数,最后一个执行的 loader会返回此模块的 JavaScript 源码
三、什么是 plugin
在 webpack 运行的生命周期中会广播
出许多事件
,plugin 可以监听
这些事件
,在合适的时机通过 webpack 提供的API
改变输出
结果
四、loader 和 plugin 的区别
loader 是一个转换器
,将 A文件进行编译形成 B文件,这里操作的是文件
,比如将 A.scss 转换为 A.css,单纯的文件转换
过程
plugin 是一个扩展器
,它丰富了 webpack 本身,针对是 loader 结束
后,webpack 打包的整个
过程,它并不直接
操作文件,而是基于事件机制
工作,会监听
webpack 打包过程中的某些节点
,执行更广泛
的任务
https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/308#issuecomment-583222450
refs
©xgqfrms 2012-2021
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/12753348.html
未经授权禁止转载,违者必究!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
2019-04-22 hashChange & url change & QRCode & canvas to image
2019-04-22 Web APP & 弹窗插件
2018-04-22 Nginx & Reverse Proxy All In One