周刊 05 期 - date-fns v3 is out

Summary from

date-fns v3 发布,开发者升级时大部分无需更改,增强了向下兼容性。核心亮点为 TypeScript 化,减少产物体积,支持 Node ESM,恢复字符串参数处理,方便开发者使用。此外,介绍了 Name Checker 工具监测命名占用情况,以及 Knip 工具查询未使用的文件和依赖,支持 monorepo 和自动修复。Neutralinojs 提供轻量级跨平台桌面应用框架,内置 JS SDK,使用简单,性能优秀。

date-fns v3

知名日期库 date-fns 发布了一篇文章来宣布其大版本 v3 的发布。作者表示,开发者从 v2 升级到 v3 在大多数情况下不需要任何更改。

这也让我想到了上一篇周刊说到 Evan You 也因为 Vue 3 存在太多 Breaking Change 导致周边生态升级时间较长,这也是向下兼容的重要性。从这点来说,date-fns 就做的很好。

由于 v3 的一大核心亮点是完成了 TypeScript 化,因此带来了以下几点收益:

  • 产物体积减少
  • 支持 Node ESM 引用
  • 删除运行时的参数检查

同样也带来了以下新的改动:

  • 支持字符串参数
  • 支持 UTCDate
  • 导出文件扁平化
  • 不再有默认导出
  • 不支持 IE

这边对开发者比较重要的一点改动是恢复支持了字符串参数。

从 v2 的时候,作者由于不同环境的 new Date 对于解析字符串日期的差异,而废弃了字符串作为参数的能力,这也使得开发者不得不在外部将字符串手动转换为日期后才能使用。

从 v3 开始,date-fns 将会内置对于日期字符串的处理,这也大大方便了开发者的使用体验。

Name Checker

用于监测当前命名是否已经被占用的小工具,优点在于覆盖了几乎所有平台的查询。对于前端来说,通过这个工具来查询 npm 包名称是否已经被占用还是蛮方便的。

https://namechecker.vercel.app/

Knip

用于查询 JavaScript 和 TypeScript 项目中未使用的文件、依赖项和导出模块。

在最新 v3 版本中,支持了 monorepo 以及自动修复的功能。

https://knip.dev/

Neutralinojs

跨平台桌面应用程序框架,和 NW.js 以及 Tarui 一样,由于产物不内置 Chromium 和 Node,所以产物体积会非常小。

内置了一套 JS SDK 用于调用系统 API,因此上手难度会比 Tarui 更小。

根据 Benchmark ,可以发现它的内存占用以及启动速度都非常优秀。

https://neutralino.js.org/