从零构建一个插件系统

6 篇文章最后更新: 2025年08月06日

关于“从零构建一个插件系统”的系列文章。

从零构建一个插件系统(六)低代码场景的插件构建思考

不知不觉,插件系统构建之旅来到了最终章。前面几篇我们从核心概念聊起,探讨了串行、并发、缓存等机制,还学习了 Koa、Redux、Vue 3 在各自领域中插件系统的实现。现在,让我们从低代码平台这个复杂的应用场景出发,完整阐述如何构建一个强大的插件系统。 我在 2024 年的主要工作,就是深度参与一个...

从零构建一个插件系统(五)其他领域插件探讨

它山之石,可以攻玉,今天我们从插件系统的构建角度出发,探讨如何在特定的业务场景中实现插件。 不过在开始之前,先提一嘴:插件的设计会因应用场景与具体业务需求的不同而有所差异,并没有所谓的“最优解”。你可能会看到一个简单的结构,但只要它能完美契合并满足需求,那么就是有效的设计。 另外,尽管我们系列文章的...

从零构建一个插件系统(四)插件的缓存

休息了几天,我们继续。今天来聊一聊插件的缓存。 在一个系统中,合理的缓存策略是必不可少的。它像我们大脑的记忆,一方面可以提高执行效率,避免重复的、昂贵的计算;另一方面,在我们的场景里,它还能减少不必要的网络请求,在提升性能的同时,也避免了被上游 API 频繁骚扰。 实现插件缓存,通常有两种思路: 插...

从零构建一个插件系统(三)串行插件系统

今天我们将探讨如何构建一个支持并发执行的插件系统。在上一篇《从零构建一个插件系统 2. 串行插件系统》中,我们实现了一个功能分离且具备完整 TypeScript 类型推导的串行系统。本篇将在此基础上,通过引入并发机制来显著提升插件的整体执行效率。 要实现带有依赖关系的并发,一个核心的前置知识是 拓扑...

从零构建一个插件系统(二)串行插件系统

书接上文,在第一篇我们讨论了一个插件系统需要包含的重点部分有哪些,下面就来实现一个基本的串行插件系统,在这里我们还是以我的 Nextjs 构建 SSG 的目标为清单。 拉取所有的 Issues 对 Issue 内容中的图片进行防盗链处理 自动提取文章摘要 提取文章的缩略图 合并专栏 实现缓存 输出最...

从零构建一个插件系统(一)插件的核心概念

从今天起准备开一个全新系列,就是关于从 0 到 1 构建一个功能齐全的插件系统。准备写文章也蛮久了,不过一直处于拖延阶段,恰逢前段时间我的项目 yliu-blog-engine 就使用到了这个插件功能,所以就打算以此来讲解一下。 考虑真实的场景,我的项目是一个 Next.js 项目,它最终构建成 S...