es-toolkitは、高パフォーマンスかつタイプセーフであり、Lodashに代わる、モダンなJavaScriptユーティリティライブラリだ。
歴史的に、JavaScriptは開発者コミュニティのニーズや期待に追いつくのに苦労してきた。このギャップは、Lodash、jQuery、MomentJSのようなライブラリの台頭につながった。これらは、この言語に欠けていた便利な機能の広範なセットを提供することで、このギャップを埋めるのに役立った。
JavaScriptの機能は年々拡張され、youmightnotneed.comのようなサイトは、最新のJavaScriptアプリケーションを開発する際にサードパーティ製ユーティリティ・ライブラリの使用を避ける方法を示しているが、多くの開発者は、パフォーマンスの向上、継続的なアップデート、そして場合によっては単に使い慣れたインターフェイスを提供できることから、ライブラリを使い続けている。
es-toolkitはこの分野での新しい競合だ。LodashやUnderscore.jsと直接競合し、バンドル・サイズとパフォーマンスで印象的な改善を主張している。
バンドルフットプリントの比較
バンドル・サイズの観点から見ると、es-toolkitはいくつかの印象的な違いを示しているが、これはLodash関数が相互に依存しており、単一メソッドのインポートによるメリットが制限されていることに起因しているようだ。
es-toolkit@0.0.1 | lodash-es@4.17.21 | Difference | |
---|---|---|---|
sample | 88 bytes | 2000 bytes | -95.6% |
difference | 91 bytes | 3190 bytes | -97.2% |
sum | 152 bytes | 413 bytes | -63.2% |
debounce | 144 bytes | 1400 bytes | -89.7% |
throttle | 110 bytes | 1460 bytes | -92.5% |
pick | 657 bytes | 3860 bytes | -83.0% |
zip | 797 bytes | 1790 bytes | -55.5% |
パフォーマンス比較
パフォーマンスの向上はさらに印象的で、大きなデータセットを扱うJavaScriptアプリケーションに実際の効果をもたらす可能性がある。
es-toolkit@0.0.1 | lodash-es@4.17.21 | Difference | |
---|---|---|---|
omit | 4,767,360 times | 403,624 times | 11.8× |
pick | 9,121,839 times | 2,663,072 times | 3.43× |
differenceWith | 9,291,897 times | 4,275,222 times | 2.17× |
difference | 10,436,101 times | 5,155,631 times | 2.02× |
intersectionWith | 8,074,722 times | 3,814,479 times | 2.12× |
intersection | 9,999,571 times | 4,630,316 times | 2.15× |
unionBy | 6,435,983 times | 3,794,899 times | 1.69× |
union | 5,059,209 times | 4,771,400 times | 1.06× |
dropRightWhile | 7,529,559 times | 5,606,439 times | 1.34× |
groupBy | 5,000,235 times | 5,206,286 times | 0.96× |
es-toolkitはLodashの互換性レイヤーを追加し、移行を希望する開発者を支援する。
互換性レイヤーを利用するには、個々のケイパビリティ・モジュールから互換性モジュールへのインポートを変更する。例えば、es-toolkit/array
から chunk
をインポートする代わりに、es-toolkit/compat
からインポートする。
互換性レイヤーはサイズとパフォーマンスに若干の影響を与える可能性がある。使用する前に、es-toolkitとLodash両方のドキュメントを比較する価値がある。chunkやuniqなどの単純な関数の多くは、直接置き換えることができるからだ。
es-toolkitはTossによって開発され、MITライセンスの下でリリースされた。Lodashのテスト(互換性が維持されていることを保証する)の使用に対応するため、若干修正されている。
es-toolkitを使い始めるには、彼らのリポジトリにアクセスするか、npm i es-toolkit
を使ってCLIから直接インストールする。