打包器如何融入脚本?

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

以 webpack 为例:

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

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

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

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

相关推荐
kyrie28几秒前
Vue 全套性能优化方案
前端
Sour5 分钟前
PDF翻译卡住不动怎么办?扫描件、OCR 和大文件排查清单
前端·pdf·ocr
ziyitty6 分钟前
MiMoCode 配置 “Unrecognized key: mcpServers“ 问题解决方案
前端·chrome
大家的林语冰11 分钟前
连 Markdown 都不放过,Rust 在前端基建杀疯了,万物皆可“锈化“!
前端·javascript·markdown
参宿717 分钟前
CSS 悬挂空白与选区溢出
前端·css
想吃火锅100518 分钟前
【前端手撕】instanceof
前端·javascript·原型模式
один but you25 分钟前
const和constexpr常量表达式
java·前端·javascript
码云数智-大飞26 分钟前
RAII 与智能指针深度拆解
java·前端·算法
qq36219670537 分钟前
阿里裁员新消息(2026最新动态汇总)
java·开发语言·前端
a11177639 分钟前
“黑夜流星“个人引导页 网页html
java·前端·html