本文整理自 Monent.js 官方英文公告 https://momentjs.com/docs/#/-project-status/
Moment.js 宣布停止开发,进入维护状态。
这是一个大而全的时间日期库,极大方便了我们在 JavaScript 中计算时间和日期,每周下载量超过 1200 万,已成功用于数百万个项目中。
但是,作为一个诞生于 2011 年的元老级明星项目,以现在的眼光来看 Moment.js 并非完美无缺,官方总结了两大问题:
1. 可变对象
Moment 对象是可变对象(mutable),简单点说,任何时间上的加减等计算都改变了其本身。这种设计让代码变的十分不可控,而且很容易带来各种隐蔽且难以调试的 bug。以至于我们在每步修改之前,都要先调用 .clone
克隆一次才能放心操作。
2. 包体积过大
因为 Momnet.js 将全部的功能和所有支持的语言都打到一个包里,包的大小也是到了 280.9 kB 这样一个夸张的数字,而且对于 Tree shaking 无效。如果要使用时区相关的功能,包体积更是有 467.6 kB 的大小。简单点说,我们可能只需要一个 .format
格式化时间的方法,用户就需要加载数百 kB 的库,这是十分不划算的。