Moment 团队宣布 Moment.js 已进入维护状态,后续不会再为其增加新功能,并建议新项目不要使用 Moment.js,推荐使用更现代的库或 JavaScript 目前的实验性提案 Temporal。
根据官方提供的数据,Moment.js 已被成功用于数百万个项目,截至2020年9月,Moment.js 每周下载量超过 1200 万。但它毕竟是一个为 JavaScript 生态旧时代而构建的项目,近年来,虽然 Moment.js 有所发展,但其底层设计并没有改变,依旧与 2011 年创建时基本相同。这导致它未能很好适应现代开发,但如果要对它进行改造,工作量也比较大,而且目前已经有了更好的替代方案,所以团队决定让 Moment.js 止步于此。
Moment.js 进入维护状态意味着:
- 团队不会再为其增加新功能
- 团队不会将其 API 更改为 immutable
- 团队不会解决 Tree-shaking 或捆绑包大小的问题
- 团队不会对其进行任何重大更改(没有大版本 Moment.js 3)
- 团队可能选择不修复错误或特异性的操作,特别是长期存在的已知问题
Moment 团队表示他们知道许多已存在的项目可能会继续使用 Moment.js,所以
- 当出现严重的安全问题时,团队会予以解决
- 在 IANA 时区数据库更新后,团队会为 Moment-Timezone 发布更新
虽然 Moment 团队阻止未来的新项目使用 Moment.js,但如果有一些特殊情况依旧可以继续使用它,例如对浏览器支持有特别要求,因为 Moment.js 支持 IE 8 及更高版本。如果项目中有其他库依赖 Moment.js,并暂时找不到更好的替代方案,团队建议还是继续使用。当然,对于 Moment.js 的长期用户,并且已经非常了解它的 API 和局限性,团队表示不必担心进入维护状态这个问题,可以继续使用它。
Moment 团队提供的替代方案包括:Luxon、Day.js、date-fns 和 js-Joda。他们还说道,希望未来有一天能够完全不需要 JavaScript 的日期和时间库,而是使用语言本身的功能。所以他们还推荐了尚处于实验性阶段的 Temporal。
猜你喜欢:暂无回复。