Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
BunがCommonJS をサポートする理由 ytaisei(安井大晟)
Slide 2
Slide 2 text
ytaisei(安井大晟) ● フロントエンド ● 24卒CyberAgent ● 株式会社AI Shift
Slide 3
Slide 3 text
Bunあまり知らない... ⇨LT応募する ⇨リサーチする
Slide 4
Slide 4 text
「CommonJS is not going away」というブログを発見 • 公式のブログ • 2023年6月なので少し古いかも
Slide 5
Slide 5 text
CJSとESM • CommonJS • ES Modules • require/exportsを使用 • 同期的にロード • 元々サーバでの使用が想定されていた • import/exportを使用 • 同期・非同期でのロードに対応 • ブラウザでもネイティブサポート
Slide 6
Slide 6 text
CJSとESM • CommonJS • ES Modules • require/exportsを使用 • 同期的にロード • 元々サーバでの使用が想定されていた • import/exportを使用 • 同期・非同期でのロードに対応 • ブラウザでもネイティブサポート 新規のプロジェクトであれば ESMが推奨
Slide 7
Slide 7 text
では、なぜCJSをサポートする?
Slide 8
Slide 8 text
public npm registryにおけるCommonJSの割合 • ESMの割合がかなり増えている • 依然としてCJSが67%以上 参考:https://github.com/wooorm/npm-esm-vs-cjs?tab=readme-ov-file
Slide 9
Slide 9 text
CommonJSの存在を尊重する姿勢
Slide 10
Slide 10 text
CommomJSの方がモジュールのLoadが早いケースも
Slide 11
Slide 11 text
CommomJSの方がモジュールのLoadが早いケースも 手元のベンチマークではCJSの方が約1.5倍早かった
Slide 12
Slide 12 text
Bunでは同一File内で importとrequireを使用可能 (CJSとESMの共存が可能)
Slide 13
Slide 13 text
結論 • BunではCJSとESMのどちらもサポートしている • CJS自体のメリットも含めて、 CJSを尊重する姿勢が記事から伺えた
Slide 14
Slide 14 text
Thanks!!! X: ytaisei_ Zenn: @taisei-13046