ingred-ui
ingred-ui copied to clipboard
`Moment.js`の利用方針の検討
ref: https://github.com/voyagegroup/ingred-ui/issues/135 ref: https://github.com/voyagegroup/ingred-ui/issues/9
背景
具体的な日は不明瞭だが、2020年後半にMoment.js
がメンテナンスモードとなった。
https://momentjs.com/docs/#/-project-status/
We now generally consider Moment to be a legacy project in maintenance mode. It is not dead, but it is indeed done.
引用部周辺を見るとこのようなスタンスであることがわかる。
- 新しい機能は追加しない
- 既知で長年議論されている問題については対処しない
- バンドルサイズが大きいこと
- ロケールファイルの問題(要調査)
- 一方でこの辺りは対処するよ
- 重要なセキュリティ上の懸念があった場合
- IANAタイムゾーンのデータ更新(タイムゾーンの規定みたいなものだろう)
この辺りの情報を加味しつつ、ingred-ui
側はどう対応していくべきなのかを検討する。
またDatePickerに使用している react-dates は momentjs に依存しているので、こちらも選んだライブラリで構成されているものに置き換える必要がある
比較するとこんなかんじ
date-fns
- ネイティブのdate型が使える
- スポンサーが多くコミュニティが活発
dayjs
- interfaceが以前のと同じだから載せ替えが楽で軽い
- 破壊的変更が最小限で済む
- date-fnsよりも若い
相談の結果、以下の観点で選定する
- 息の長そうなもの(また移行するのは面倒なので)
- 移行しやすい(インタフェースが似ている)
- 乗り換える予定のカレンダーライブラリとの親和性が高い
dayjsが若く、かつ移行しやすいのでこれを使うことにする
https://grzracz.github.io/react-dayjs-picker/ これがいいかなー
まともに使えそうなのが↑しか見つからないのでコレにする
@maktak1995 このIssueだけみるとどうなったのかわからないので、いい感じに意思決定を書いてCloseしたりしておいてもらえると:pray:
- 後方互換性を考慮してdayjsへの置き換えを進めることに
- momentjsに依存してるreact-datesも合わせて置き換える
- いい代替がない & 同時にデザインも変えることになったので、DatePickerごと作り直す
- 今後は #975 で進めていく