在翻看metamask-extension源码时候看到package.json中有个字段"packageManager": “yarn@4.9.1”,但在npm中查看yarn,最新版还是1.22.22,奇怪,那么实际项目怎么安装这个v4的yarn呢。仔细查下发现,其中是使用了corepack来做包管理器和版本管理。
8月 12, 2025
最近开源项目需要做一个web3.js,于是调研下web3.js的头牌ethers.js。
8月 5, 2025
最近2个原因导致我决定订阅Claude Pro,1是Claude Code太火了,2是GPTs的对于系统提示词的理解总是掉链子即逻辑性还是不够强,因此决定尝试一下Claude Pro。这里mark下我是如何解决Claude Pro美区订阅的。
8月 4, 2025
本文介绍小程序中用户头像和昵称的获取方法,包括新版API使用、兼容性处理以及最佳实践等,帮助开发者正确实现用户信息获取功能。
8月 4, 2025
最近家人咨询手机如何投屏到电视,看来还很多还是不知道该功能,索性我就介绍手机投屏到电视的各种方法,并分享我的个人使用体验。
8月 2, 2025
Cursor 出圈之后,Claude Code紧接着横空出世,万万没想到终端下写代码竟然也可以这么厉害,当时看到出圈很好奇,就上手玩了下,第一步就踩坑,在折腾几回后,终于用上了,我想说真不错。这里就mark下基本的使用。
8月 1, 2025
最近一个开源项目需要做个H5版,决定试试Tailwind,这里mark下我对它的认识和使用后的感受。
7月 24, 2025
需求 interface User { parent: { name: string; }; age: number; name: string; } type Column = { key: keyof User; }; const columns: Column[] = [ { key: 'name' }, { key: 'name1' }, { key:'parent.name' } ]; 解决办法 type Paths<T> = T extends object ? { [K in keyof T]: `${Exclude<K, symbol>}${"" | `.${Paths<T[K]>}`}` }[keyof T] : never type Column = { key: Paths<User>; }; 除了自己写Paths类型外,还可以使用现成的库,比如type-fest中的Path类型。
7月 22, 2025
最近家人的手机过于老旧了,决定换新。之前因为她使用的是红米note系列,因此这次还是选择红米note相对新一点的型号,同一品牌的话,系统使用习惯就可以直接延续,不会额外增加学习成本。
7月 14, 2025
之前俩Anker充电宝都属于召回批次,最近收到了短信,说建议自行处理,因此我决定按照建议进行处理。这里mark下流程。
7月 10, 2025