打包器如何融入脚本?

理解这个问题,类似于理解 plugin 的概念: 所谓的 plugin 其实就是一种在现有功能的基础上提供的扩展功能。 本质上是 在某一个时机(hooks)下,根据当前的状态(形参)执行特性的事情,并返回对应的结果(返回值)。 那么如果想要让编译器支持这样的 plugin ,那么就需要提供对应的 hooks 和插入方式。

以 webpack 为例:

js 复制代码
export default {
  plugins: [
    new HTMLWebpackPlugin()
  ]
}

那么此时,"webpack实例"就可以通过 plugins 这个数组,拿到所有的插件。其中每个插件都是一个具体的实例对象。

webpack 可以控制这些 plugin 实例,让他们在特定的实际下进行执行,传递 context 上下文参数(代表的应该是整个编译流程下的核心对象)。插件可以通过修改 context 中的某些属性来得到想要完成的目的。

以 HTMLWebpackPlugin 为例,他就可以在 context 中获取到 html 文本,对其进行修改。

相关推荐
华仔啊2 小时前
图片标签用 img 还是 picture?很多人彻底弄混了!
前端·html
lichong9512 小时前
XLog debug 开启打印日志,release 关闭打印日志
android·java·前端
烟袅3 小时前
作用域链 × 闭包:三段代码,看懂 JavaScript 的套娃人生
前端·javascript
风止何安啊3 小时前
收到字节的短信:Trae SOLO上线了?尝尝鲜,浅浅做个音乐播放器
前端·html·trae
抱琴_3 小时前
大屏性能优化终极方案:请求合并+智能缓存双剑合璧
前端·javascript
用户463989754323 小时前
Harmony os——长时任务(Continuous Task,ArkTS)
前端
fruge3 小时前
低版本浏览器兼容方案:IE11 适配 ES6 语法与 CSS 新特性
前端·css·es6
颜酱3 小时前
开发工具链-构建、测试、代码质量校验常用包的比较
前端·javascript·node.js
颜酱4 小时前
package.json 配置指南
前端·javascript·node.js
todoitbo4 小时前
基于 DevUI MateChat 搭建前端编程学习智能助手:从痛点到解决方案
前端·学习·ai·状态模式·devui·matechat