阿里云优惠活动,点击链接进行购买: 一年仅需96.9元即可以购买服务器~

腾讯云优惠活动, 点击链接进行购买一年仅需99元

腾讯云限时开团活动, 点击链接进行购买一年仅需95元

各大服务器厂商对比选购

# webpack loader 和 plugin 的区别

loader 是一个转化器

例如:

  • 样式:style-loader、css-loader、less-loader、sass-loader
  • 文件:raw-loader、file-loader 、url-loader
  • 编译:babel-loader、coffee-loader 、ts-loader

plugin是一个扩展器,它丰富了webpack本身,针对是loader结束后,webpack打包的整个过程,它并不直接操作文件,而是基于事件机制工作,会监听webpack打包过程中的某些节点,执行广泛的任务

插件生命周期

  1. Compile 开始进入编译环境,开始编译
  2. Compilation 即将产生第一个版本
  3. make任务开始
  4. optimize作为Compilation的回调方法,优化编译,在Compilation回调函数中可以为每一个新的编译绑定回调。
  5. after-compile编译完成
  6. emit准备生成文件,开始释放生成的资源,最后一次添加资源到资源集合的机会
  7. after-emit文件生成之后,编译器释放资源

webpack 插件系统 https://github.com/webpack/tapable#tapable

插件第一个写法

https://webpack.js.org/concepts/plugins/#anatomy

可以参考文章

https://beacelee.com/2018-01-18-%E8%A7%A3%E6%9E%90webpack%20plugin%E7%9A%84%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F%EF%BC%8C%E4%B9%A6%E5%86%99%E8%87%AA%E5%B7%B1%E7%9A%84%E7%AC%AC%E4%B8%80%E4%B8%AAplugin/

常见考题:

https://juejin.cn/post/6844904094281236487

Last Updated: 9/4/2022, 2:18:18 PM