Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BunがCommonJSをサポートする理由
Search
ytaisei
March 27, 2024
Technology
2
300
BunがCommonJSをサポートする理由
フロントエンドTechCafe〜春のBun祭りLT会〜にて使用した資料。
参考資料:
https://bun.sh/blog/commonjs-is-not-going-away
ytaisei
March 27, 2024
Tweet
Share
More Decks by ytaisei
See All by ytaisei
Reactを段階的に覗いてみる
ytaisei
2
930
Reactのトランジションを覗いてみる
ytaisei
1
1.4k
Deep Dive Into React 〜React Fiber Architectureについて〜
ytaisei
1
100
React19で状態管理はどう変わるか
ytaisei
2
130
TanStackで効率的なルーティングとデータ取得を実現
ytaisei
8
1.5k
TanStack Routerで型安全かつ効率的なルーティングを実現
ytaisei
4
1.7k
TanStack Router SPA開発の選択肢になるか(+TanStack Query)
ytaisei
2
1.3k
【2023】SWR vs TanStack Query
ytaisei
1
2k
React Queryは非同期の状態管理ライブラリだ
ytaisei
3
1.8k
Other Decks in Technology
See All in Technology
Vision Language Modelを活用した メルカリの類似画像レコメンドの性能改善
yadayuki
9
1.2k
LINEギフトのLINEミニアプリアクセシビリティ改善事例
lycorptech_jp
PRO
0
210
Dapr For Java Developers SouJava 25
salaboy
1
130
Cloud Native PG 使ってみて気づいたことと最新機能の紹介 - 第52回PostgreSQLアンカンファレンス
seinoyu
0
160
Amazon Q Developer 他⽣成AIと⽐較してみた
takano0131
1
120
コード品質向上で得られる効果と実践的取り組み
ham0215
1
200
SLI/SLO・ラプソディあるいは組織への適用の旅
nwiizo
4
1.2k
DIってなんだか難しい? 依存という概念を「使う・使われる」 という言葉で整理しよう
akinoriakatsuka
1
770
LINE API Deep Dive Q1 2025: Unlocking New Possibilities
linedevth
1
150
SpannerとAurora DSQLの同時実行制御の違いに想いを馳せる
masakikato5
0
550
パスキー導入の課題と ベストプラクティス、今後の展望
ritou
7
1.2k
20250326_管理ツールの権限管理で改善したこと
sasata299
1
290
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
328
21k
Thoughts on Productivity
jonyablonski
69
4.5k
Bash Introduction
62gerente
611
210k
A designer walks into a library…
pauljervisheath
205
24k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.7k
A Philosophy of Restraint
colly
203
16k
A Tale of Four Properties
chriscoyier
158
23k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Building Your Own Lightsaber
phodgson
104
6.3k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
39
7.2k
Transcript
BunがCommonJS をサポートする理由 ytaisei(安井大晟)
ytaisei(安井大晟) • フロントエンド • 24卒CyberAgent • 株式会社AI Shift
Bunあまり知らない... ⇨LT応募する ⇨リサーチする
「CommonJS is not going away」というブログを発見 • 公式のブログ • 2023年6月なので少し古いかも
CJSとESM • CommonJS • ES Modules • require/exportsを使用 • 同期的にロード
• 元々サーバでの使用が想定されていた • import/exportを使用 • 同期・非同期でのロードに対応 • ブラウザでもネイティブサポート
CJSとESM • CommonJS • ES Modules • require/exportsを使用 • 同期的にロード
• 元々サーバでの使用が想定されていた • import/exportを使用 • 同期・非同期でのロードに対応 • ブラウザでもネイティブサポート 新規のプロジェクトであれば ESMが推奨
では、なぜCJSをサポートする?
public npm registryにおけるCommonJSの割合 • ESMの割合がかなり増えている • 依然としてCJSが67%以上 参考:https://github.com/wooorm/npm-esm-vs-cjs?tab=readme-ov-file
CommonJSの存在を尊重する姿勢
CommomJSの方がモジュールのLoadが早いケースも
CommomJSの方がモジュールのLoadが早いケースも 手元のベンチマークではCJSの方が約1.5倍早かった
Bunでは同一File内で importとrequireを使用可能 (CJSとESMの共存が可能)
結論 • BunではCJSとESMのどちらもサポートしている • CJS自体のメリットも含めて、 CJSを尊重する姿勢が記事から伺えた
Thanks!!! X: ytaisei_ Zenn: @taisei-13046