#工具相关

工程化相关的东西

14 篇文章

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

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

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

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

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

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

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

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

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

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

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

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

如何为 Typora 添加图床?

其实自己一直不是 Typora 的重度用户,虽然可以实时预览编辑,但是我期待的格式化功能目前还是缺失。 但是得益于颜值自己还是会偶尔使用它,但是本地的 md 文件和发布到掘金和 Github 等平台还需要对本地链接一个个转换,实在是非常不友好。所以就有了这篇文章,介绍一下在 Typora 中如何自定...

如何为 Typora 添加图床? - 图片 1
如何为 Typora 添加图床? - 图片 2
如何为 Typora 添加图床? - 图片 3
从 VueCLI 迁移到 Rsbuild

从 VueCLI 迁移到 Rsbuild

决定迁移的原因主要有两点: 对 Node 22 支持不友好。由于项目基于 VueCLI 3,Node 版本的诸多变更导致无法启动,必须通过 nvm 切换到 16 版本。 构建和热更新速度慢。 在决定使用 Rsbuild 之后,我也进行了一番调研,备选方案有四个: Webpack+SWC 或 Webp...

花了一天我写了这样一个 Prettier 插件

spacexcode-coverview-5241@2x Prettier 在日常经常使用,除了格式化代码之外在编写文档的时候也会选择使用,但是最近安装 Prettier 到项目依赖之后发现 md 文件的格式化文档竟然失效了。 排查了一番原因,最终在 GitHub 上找到了相关讨论 Markdown...

花了一天我写了这样一个 Prettier 插件 - 图片 1
花了一天我写了这样一个 Prettier 插件 - 图片 2
花了一天我写了这样一个 Prettier 插件 - 图片 3

monorepo 如何解决别名问题

得益于 pnpm 软链接实现现在 monorepo 项目已经十分成熟了,不过在写项目时候还是遇到很多痛点,例如: 如果我有多个 packages 项目并且使用 TypeScript,那么我肯定希望是写的都是 ts,在需要调用的时候通过工具来完成这一过程的转译,不过在实际开发中可能使用了 vite 这...

nginx 极简入门

nginx(读音:engine-x,音标:\[ˈendʒɪnks'])是 HTTP 和反向代理服务器、邮件代理服务器和通用 TCP/UDP 代理服务器。 日常中最经常听到用到的就是反向代理以及负载均衡,那么什么是反向代理呢? 什么是反向代理? reverse-proxy 反向代理(Reverse P...

nginx 极简入门 - 图片 1
nginx 极简入门 - 图片 2
nginx 极简入门 - 图片 3
Webpack 插件入门

Webpack 插件入门

webpack 插件入门 bg 最近写了一个移动端项目,不过每次 build 的时候还需要手动上传服务器感觉很不方便,毕竟每次删除文件夹然后拖拽上传的过程太重复了,本着不重复造轮子的原则去 Github 翻了一下,发现 Upload上传插件还是蛮多的,不过距离自己的要求还是有些差异,很多插件只是只是...