打包器如何融入脚本?

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

以 webpack 为例:

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

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

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

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

相关推荐
Serendipity-Solitude8 分钟前
HTML 五子棋实现方法
前端·html
frontend_frank8 分钟前
脱离 Electron autoUpdater:uni-app跨端更新:Windows+Android统一实现方案
android·前端·javascript·electron·uni-app
PieroPC10 分钟前
用FastAPI 一个 后端 和 两个前端 原生HTML/CSS/JS 、Vue3 写一个博客系统 例
前端·后端
wulijuan88866612 分钟前
BroadcastChannel API 同源的多个标签页可以使用 BroadcastChannel 进行通讯
前端·javascript·vue.js
逝川长叹27 分钟前
利用 SSI-COV 算法自动识别线状结构在环境振动下的模态参数研究(Matlab代码实现)
前端·算法·支持向量机·matlab
xkxnq31 分钟前
第一阶段:Vue 基础入门(第 13天)
前端·javascript·vue.js
qq_4198540533 分钟前
Excel预览
前端
PieroPc42 分钟前
用FastAPI 后端 和 Vue3 前端写一个博客系统 例
前端·vue·fastapi
xiaoyustudiowww1 小时前
fetch异步简单版本(Tomcat 9)
java·前端·tomcat
TOPGUS1 小时前
谷歌Chrome浏览器即将对HTTP网站设卡:突出展示“始终使用安全连接”功能
前端·网络·chrome·http·搜索引擎·seo·数字营销