本周新收藏的歌,有两首。
听歌
有了 CD 播放器后,现在不仅仅在网易上听日推啦,还开始入手一些 CD 了。 不得不说 CD 和流媒体的质感真的不同,完全不会有压缩的感觉,听起来很舒服。
本周入手的 CD 有:
- OneRoom《Toy Box》:由我最喜欢 P 主 OneRoom 创作的发行于 2009 年的专辑,这么多年终于补票了。 翻开来自十四年前的歌词本时感觉有点不真实。
- 坂本龙一《Playing the piano》:女朋友送的。
工作
-
这周 rsuite 算是正式开始 v6 的开发了,契机是产品上需要 Sidenav 的设计更新。 开发在
main
分支上进行,会优先支持产品的需要,发布一系列仅供内部使用的 alpha 版本。 待面向产品的需求完成后再继续开发面向社区的 beta 版。v5 不会因此停止更新,我打算将任何向后兼容的变更(包括特性和修复)都尽可能拣到 v5 上,尽量让 v6 与 v5 的差异保持在少数无法避免的 breaking change,使得升级变得容易。 我所喜爱的 Laravel 框架就做到了这一点,我希望向它看齐。
-
这周一位同事离职了,下周开始我得接手他的工作。 这样一来我原本在八月底九月初关于 DevOps 平台和 rsuite 工作项的计划统统会受到影响,要重新安排了 😮💨。
-
给 DevOps 平台的路由模块重新组织了一下。 原本是参考 bulletproof-react 的 feature-based 的组织方式,将路由页面模块放在各自的 feature 目录中,现在改为了参考 Remix 的路由文件命名组织方式, 使用约定式的具名导出,配合 React Router 的
lazy
特性,将路由页面模块文件和路由路径一一对应起来。 这样一来减少了很多模块命名的麻烦,而且 feature 目录之间进行引用时也不会再将路由页面模块包含进来。 -
给一个使用 Lerna 5.x 的老 monorepo 项目合了一个变更并且要发布版本,没想到
lerna version
阶段执行的npm install
报了 peer 依赖冲突的问题。 在lerna.json
里给lerna version
命令设置npmClientArgs: ['--legacy-peer-deps']
选项也没有用。 翻了 Issue 才发现偏偏lerna
的这些个命令之中偏偏version
是不支持npmClientArgs
的。 这个问题在 6.3.0 中被修复,于是需要给项目中的 Lerna 升大版本,好在升级没有遇到 breaking change,仅仅更新版本号便解决了问题。
开源和 Radar
- 看了下 Sentry browser SDK 的源码,这个劫持
history
方法的思路挺有意思,让我想起之前做过一个use-search-params
库,是一个获取和操作URLSearchParams
的 React hook,兼容不同的react-router
版本甚至没有react-router
的情况。 但是当时没有想到在没有react-router
的情况下该如何实现,现在想想其实可以粗暴一点直接 hack 全局对象的。 - 本周加入 GitHub star 的一些有意思的仓库
- Avatartion 一个生成 notion 风格 avatar 的网站,有趣。
next-typesafe-url
一个为 Next.js 提供类型安全的路由操作库,收藏下来给接下来 DevOps 平台的路由重构中参数校验的部分做参考。- svg-path-editor 一个编辑 SVG path 的 GUI,也算是工具 ui 化的灵感。
- inochi2d 群友推荐的可以用来做 VTuber 的工具(?)
parse5
一个 HTML 解析库type-fest
一个 TypeScript 实用类型集。
生活
Minecraft
自从上次找到了樱花树、把北极熊牵回家后,暂时还没有想好下一步要探索些什么。 闲来无事想要去许久未去的矿洞里铺铺路,做点景观什么的,没想到沿着一条以前从未走过的岔路连到了又一个巨大的矿洞。 而且没几分钟就一口气挖到了 59 个钻石,意外收获。
Complementary 光影除了好看之外还有一个功能,就是矿石会发光,在矿洞里看得太清楚了。非常推荐。
总结
忙碌的一周。