惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
人人都是产品经理
人人都是产品经理
IT之家
IT之家
Cyberwarzone
Cyberwarzone
T
Troy Hunt's Blog
有赞技术团队
有赞技术团队
阮一峰的网络日志
阮一峰的网络日志
T
Threat Research - Cisco Blogs
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
G
GRAHAM CLULEY
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
博客园 - 叶小钗
Last Week in AI
Last Week in AI
C
CERT Recently Published Vulnerability Notes
The Hacker News
The Hacker News
Jina AI
Jina AI
T
Tor Project blog
V
Vulnerabilities – Threatpost
酷 壳 – CoolShell
酷 壳 – CoolShell
Spread Privacy
Spread Privacy
博客园_首页
C
Cybersecurity and Infrastructure Security Agency CISA
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Simon Willison's Weblog
Simon Willison's Weblog
Security Latest
Security Latest
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园 - 司徒正美
V2EX - 技术
V2EX - 技术
I
Intezer
The Cloudflare Blog
Cisco Talos Blog
Cisco Talos Blog
SecWiki News
SecWiki News
博客园 - 【当耐特】
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
L
Lohrmann on Cybersecurity
Scott Helme
Scott Helme
Google Online Security Blog
Google Online Security Blog
量子位
The Last Watchdog
The Last Watchdog
AI
AI
Application and Cybersecurity Blog
Application and Cybersecurity Blog
S
Security Affairs
P
Palo Alto Networks Blog
S
Secure Thoughts
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Attack and Defense Labs
Attack and Defense Labs

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派 万字剖析:千问App深度体验报告(2026) - 少数派 在2026年,如何真正防止别人抄袭你的作品 - 少数派 怎么用 50 块搭个 AI 语音助手?我踩了 3 天坑 - 少数派 YeeroAI:让 AI 对话真正成为知识管理的一部分 - 少数派 爬泰山 - 少数派 「旅图显影」 App 更新:这次,我们补上了一点「手感」 - 少数派 假期出门太折磨?我的 23 条经验帮你规划惬意旅行 - 少数派 工作流会变吗 - 少数派 Claude Opus 4.6 怎么用最省钱?我测了 5 种方案 - 少数派 GPT Image 2 让图文并茂不再稀罕 - 少数派 用户侧出发——什么是AI,我要不要学习? - 少数派 找片、转存、整理、播放一条龙!让你的付费网盘值回票价 - 少数派 欢迎试用!日课一问2.0插件 - 少数派 自己做的MDeditor,原本想购买 Typora 试了两次支付不成功,干脆自己做一个 - 少数派 vibe coding了一个 3MB 的小工具,让 ~/Downloads 彻底告别混乱 - 少数派 因为受不了 Mac 的风扇策略,我做了一个风扇控制工具 - 少数派 别只怪模型 - 少数派 Warp 终端的 AI 功能怎么用?我测了一周的体验 - 少数派 AI 写代码老是出 bug?这 5 个配置我后悔没早知道 - 少数派 「新玩意」苹果出相机可能就这样:Sigma BF + 45mm F2.8 DG Contemporary - 少数派 一个面向2030年的AI操作系统是什么样子的:浅谈cola这款有灵魂的Agent - 少数派 别只看写代码 - 少数派 每天解决10个问题,还是一口气攻坚解决400个? - 少数派 AI 交易机器人怎么搭?我用 Claude 跑了一周实盘 - 少数派 Maptoposter Online:把你爱的城市画成艺术海报 - 少数派 Function Calling 怎么用?我测了 3 个模型发现差距真大 - 少数派 Legend Talk:我做了个 AI 圆桌,让 160 位思想家围着你的问题转 - 少数派 如何找到自己的蓝方?在小县城寻找压力测试 - 少数派 语音输入与软件接口|2026年聊AI时,我们都聊些什么(上) - 少数派 混动已经卖爆,纯电又来补刀——钛7闪充版简直“不讲武德” - 少数派 本月玩什么|朋友收藏、识质存在、沙罗周期 - 少数派 为什么要每天坚持输出? - 少数派 Claude API 挂了好几个小时,你的项目有备用方案吗? - 少数派 Function Calling 没你想的复杂——我用它做了个有点用的工具 - 少数派 登录系统立即播放视频或者图片音乐的软件 - 少数派 我为什么创建 FlipHTML5 下载工具 - 少数派 残局没电?多品牌外设电量统一管理软件EasyBluetooth已支持RTSS游戏内显示以及AIDA64 - 少数派 前往通义路的路 - 少数派 太好看了,媲美Sun的个人导航页,NAS部署星云门户 - 少数派 乌黑嘴唇“一键检测”上线了 - 少数派 派早报:Claude AI 接入多个创意软件生态、FILCO 生产方接手品牌等 - 少数派 【更新】BearCLI、Claude 连接器与 MCP 服务器 - 少数派 记了上千条流水,还是看不懂财务?我做了一个让 AI 读懂账本的工作台 - 少数派 MINI R56 升级原厂 Sport 模式 - 少数派 新玩意 | 一棵柠檬树(仿真版) - 少数派 Momenta的“物理AI”野望,需迈过“含摩量”这道关 - 少数派 网页直接投屏控制手机!NAS一键部署PandaScrcpy,流畅丝滑可远程。 - 少数派 众测|邀你一同探索随身 AI 硬件入口 YoooClaw C·ONE - 少数派 2050大会:分享时间是真诚 参会记 - 少数派 iPad 赋能电影创作:国内首部宣纸手绘长片《燃比娃》的幕后故事 - 少数派 AI的审美:我用 8 个大模型给 100 张旅行照片打分 - 少数派 普通人如何破圈?去参加一个本地协会 - 少数派 把极空间的图标全换了,主题DIY全攻略打造你的专属NAS桌面 - 少数派 电子便签墙,帮你实现便签自由 - 少数派 我如何用三个 CLI 工具取代文档创建需求 - 少数派 原来真的有人可以玩一辈子 - 少数派 社区速递 139 | 派友热议三月买了啥、复古单反尼康 Df 体验 - 少数派 06 作品的赏析与评价 - 少数派 TDS REVIEW|索尼 WF-1000XM6 降噪真无线耳机体验 - 少数派 35.98万起售的第二代腾势D9,我看重的不是堆料,而是不凑合 - 少数派 鼠须管 Squirrel 皮肤配置指北 - 少数派 从watch ultra2换到redmi watch6 - 少数派 派早报:阿里巴巴发布视频生成模型 HappyHorse 1.0 等 - 少数派 别迷信1M - 少数派 家人们天塌了!网盘“大封杀”,多个渠道多条路,NAS部署PanHub - 少数派 AI与人勾心斗角!NAS一键部署AI狼人杀,假日休闲必备。 - 少数派 电商必备!Comfyui工作流批量生图插件,一次生成12张!支持Nano banana pro模型 - 少数派 Comfyui工作流配置Gpt-image-2模型教程,0.03/张 - 少数派 OpenClaw第三方APi怎么配置?可使用Gpt-image-2模型 - 少数派 会员社区话题精选 Ep. 103 - 少数派
组件库实战-基建思路 - 少数派
2025-06-10 · via 少数派

文章总结

这篇文章围绕新组件库的基建思路展开,涵盖了从现状吐槽到具体工程化实践的全过程。核心内容包括:

👀 工程化现状吐槽:反映了原有项目管理混乱、构建速度慢、依赖不一致等问题。

⚙️ 技术选型:选择了 monorepo(管理多包的方式更统一),主框架是 Vue3 + TypeScript,兼具现代性与强类型保障。

🧱 支撑体系:覆盖了代码规范(如 ESLint + Prettier)、Git 工作流(如 Git Flow 或 trunk-based)、打包工具(如 Vite + Rollup)、测试(如 Vitest)、文档系统(如 VitePress/Storybook)等。

🛠️ 开发流程与分支管理:通过分支策略和 PR 审查机制来保障质量与协作效率。

❤️ 社区贡献与扩展:项目开放、欢迎新同学加入,是一个「为爱发电」的社区协作实践。

🤔 关联问题简答:

Vue3 为何被选用?

🌟 响应式系统更强大(Proxy 替代 defineProperty)

🔧 Composition API 更适合构建库,逻辑复用和类型推导更清晰

🌐 更适配未来生态(如 Nuxt 3、Vue Router 4、Pinia 等都基于 Vue3)

pnpm 有何不足?

🌀 项目间的隔离更强,但这也会导致:

某些工具链(如老版本的 Webpack 插件)在 node_modules 查找依赖失败

对 monorepo 初学者不够友好,调试和查错稍显复杂

💡不过总体而言,性能和一致性更好

测试库如何选择?

🔍 建议使用 Vitest:

与 Vite 深度集成,速度快、类型好

写法类似 Jest,上手简单

若需要更丰富的 DOM 测试,可结合 Testing Library 使用(如 @testing-library/vue

工程化闲谈

2023年已经到来了,我最深的感觉就是 越来越卷 了,前几年大家都还在 卷功能,卷点子 。然后老牌工具被大伙卷得差不多了,在功能上已经没啥好卷的时候。大家就开始从 语言层面上卷(求求了能不能不卷了,我其实很想吐槽),类似于Rust、Go等编译型语言。全面拥抱工程链和编译速度,用二进制去追求极致的DX,类似于bun,esbuild、swc、tsup等。

这实在是对于一个刚入门的把工程化作为主方向的前端工程师来说,着实是不太友好的,这意味着你可能你刚学完 babel 的时候.

babel(虽然它有很高的定制程度,但它比起esbuild和swc几乎是差了一倍或者以上的速度) 就被淘汰了,你刚会写 cli 的时候,发现大家都很挑剔,只用 Rust 或者 Go 的工具了,你白学了,以后的前端工程师可能就不知道还有 babel 这个东西存在了,你的投入产出就不是很成正比了。除非说你是真正意义上的,工程化底层玩家(因为对于转移,编译,各路工作流的思路来说大致相同,你需要的只是学习语言的时间)。

其实说到这也暴露了一个问题,为啥每一次工程化的迭代都是从国外开始~,国内其实有好多优秀的开源工作者但他们都是加入的国外的开源团队,人家pnpm的作者在乌克兰,一边外面战火连天一边写开源,我们就卖课卷钱搞培训要不就摆烂切图崽是把。

好了,闲话不多说了,步入正题,因为组件库是开源组件库,这篇文章也是顺手写给正在协作开发的小伙伴的,对于一些比较基础的东西就只会简单的提一下。

技术选型

类别选型/工具
🏗 仓库模式monorepo
🌐 框架与语言Vue3, TypeScript
📦 Monorepo 支持pnpm, turborepo, changesets
🧼 代码规范与限制husky, stylelint, eslint, prettier, commitlint
🔁 工作流前期:基于功能分支(常规开发流程)<br>后期:GitHub 工作流(bot + actions)
📦 打包工具tsup, vite, tsc, gen-tsc-vue
🧪 测试库vitest
📚 文档站点vitepress
🛠️ 额外技能支持IDE 支持、Shell 脚本工具(如 sh

仓库模式的选择

其实这个没什么好说的,对于组件库来说,共用的基础依赖,包的相互调试三方包的管理monorepo 显然是无二选择,并且在各种新技术的支持下也能解决一些雪球越滚越大的问题。

再谈谈对现在项目的思考,我们平时都会面临一个问题,那就是越来越大的项目,而传统的singlerepo的单仓模式会越来越不适合滚雪球项目。可能有人会提到微前端,基座和子应用等一些方案,但这个方案还是会面临不停修改版本号发包的问题(不利于CI/CD)。而monorepo这种模式对于这个问题是一个很好的解决方案,即便是单包应用也应该使用monorepo,而这就是我前面指的随着技术发展的聚合。

框架和语言

typescript不用多说了,Vue3的选择是因为国内 V圈 力量大一些,react其实它庞大的社区支持和工程化支撑让我很心动,但实在是不好找人,属于是无奈之举了。

monorepo支持

1.老牌工具npm

四个字形容的话就是:尾大不掉

其实它挺尴尬的,一个是node不带它玩了,一个是竞品个个猛如虎。

但还好的是现在前端圈门槛极低,所以实际上前端圈处于初级领域的开发者还有很多,还有就是一些老项目,那么对于这些情况来看的话用 npm 也是正确的选择,毕竟也不是不能用,也没特别差,也不需要追求极致。

2.yarn

作为一个全球使用量第一的包管理工具,它在机制上、速度上、易用性上都吊打了npm,包括后面 yarn + lerna的联动, 以及v2的依赖压缩,v3的软连接。其实也还算可以了。

3.pnpm

pnpm + changesets VS yarn + lerna

pnpm + changesets的优势主要在这些方面:

1、严格的依赖隔离。2、更加的简洁和效率。3、软连接(虽然yarn3也有,但没Pnpm用得这么舒服)。4、速度优势。5、发包更简洁内置CHANGELOG。6、github bot和actions支持。

但说句中肯一点的话,因为现代计算机的性能都十分过剩,对于什么软链接也好,隐式依赖、幽灵依赖也好,隔离也好,为了节省时间和空间,其实都是虚的,想了解的可以去看看文章和github讲得也挺多了上面这些问题。

pnpm 天生的优势让他可以很简单的,又有效率的支持workspace monorepo,对新手十分友好。特别是在多个项目之间共享代码时,无需单独抽离代码发包,再加上它也确实更快,占用的体积也更小,所以pnpm是现代monorepo的不二选择。

4.turborepo

turborepovercel 针对 monorepo 拓扑依赖关系的并发构建工具。

Turborepovercel / turborepo

就是 turbo 这个工具是 go 编写的,因为收集依赖关系进行 io 还有识别文件 hash 保存 cache 这些用 go 会更快(编译并发型语言的优势惹)。

它是用来解决,在 monorepo 中错综复杂的依赖关系和构建逻辑的解决方案。链接放在上面了,对于初入工程化的同学来说,你只要知道第一它很快,第二它会帮你收集最优的依赖构建方案,第三它是有缓存的并且有远程缓存

落到实处,这从根本上解决了monorepo项目的各种构建打包问题。以组件库为例:Pr预览场景的编译。各种错综的依赖打包,组件打包,生成dts,类型检查,断言测试,字体库打包,docs打包等等等。

代码限制

对于一个开源库,大伙又是来自天南地北的小伙伴。团队协作人越来越多的时候,这时候应该是限制>约定。简单的说就是,能加的限制都加上,这对于代码的规范、个人的提升都是很重要的。

eslint+pritter 没啥好说的语法检测+代码格式化

csslint 遵循bem规范

git+husky+commitlint 对于提交的格式进行限制

review 提交代码至少由2人或以上分别check。

workflow工作流

下一篇,讲工具实战的时候细说。

打包工具

这几年的打包工具太多了,而且都很优秀,真是挑花了眼,比如:unbuild tsup esbuild snowbuild(文档特别好!但怕踩坑) vite rollup webpack glup wmr turbopack tsc等等等

我们得从几个方面去考虑:

上手难度。

对vue的支持度。

构建速度。

维护力度社区支持度。

vite: 毋庸置疑我们可以先挑出一个vite,虽然它在库模式下的打包不尽人意以及社区插件质量一般。但它对vue的支持度,开发服务器优势的构建优势,和后续vitest,还有上手难度都是值得一用的。

tsup:对于一些工具包,语言包,打包文件等它真的是一个很好的选择(esbuild内核)。(如果它对vue的支持力度有react这么高就好了)。

tsc和gen-tsc-vue: 它在生成d.ts描述文件上对比一些插件(transform写的那些)真的很快,且文档齐全,社区方案众多。

测试库和文档站点

vitepressvitest,相似的打包和相似的配置项,在很大程度上形成了一个闭环,降低我们的开发难度。

组件库整体思路

流程:

评估功能与影响 \-> 脚手架生成组件和docs文档 -> 开发组件 -> play广场调试单个部分 -> vitest单测 -> 写文档 -> 打组件库包和单包 -> 提PR 通知引用你组件的人\-> 代码review or pk -> 合并代码更变版本 -> 发布文档站点、单组件、组件库

分支部分:

除了上面提到的docs文档站点,组件库,测试库,打包工具、代码限制这些基础之外,还有些部分。

模块说明
🚀 脚手架初期:创建组件模版与 docs 模版,便于开发专注<br>后期:整合 turborepo,统一打包、测试、检查等命令
🎨 样式系统组件库需要统一、稳定、可扩展的样式体系作为支撑
🔠 类型系统与样式系统一样重要,确保类型安全与良好 DX,后续由其他成员补充
🤖 Git Bot & Actions引入 GitHub Bot 与 GitHub Actions 实现提交规范与自动化流程,减轻维护与发布压力
🧑💻 IDE 支持目前以 VSCode 为主,提供语法提示与智能补全功能
🌍 语言库可选项,主要用于提升国际化能力;但由于项目为“为爱发电”,非 KPI 驱动,暂不强制要求