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
200
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
React19で状態管理はどう変わるか
ytaisei
2
62
TanStackで効率的なルーティングとデータ取得を実現
ytaisei
7
1.1k
TanStack Routerで型安全かつ効率的なルーティングを実現
ytaisei
4
1.3k
TanStack Router SPA開発の選択肢になるか(+TanStack Query)
ytaisei
2
1.1k
【2023】SWR vs TanStack Query
ytaisei
1
1.8k
React Queryは非同期の状態管理ライブラリだ
ytaisei
3
1.7k
アウトプットが与える影響 〜価値を最大化するための学習サイクル〜
ytaisei
2
1.8k
OpenAPIコード生成ライブラリを 『Orval』に移行した理由
ytaisei
1
3.5k
Other Decks in Technology
See All in Technology
From naive to advanced RAG: the complete guide
glaforge
0
620
テストを楽に書きたい
tomorrowkey
2
260
太田博三(@usagisan2020)
otanet
0
140
塩野義製薬様のAWS統合管理戦略:Organizations設計と運用の具体例
tkikuchi
0
300
入社半年(合計1年)でGoogle Cloud 認定を全冠した秘訣🤫
risatube
1
270
俺とVSCode Python Debugger Extension
sat
PRO
1
140
今日から始める技術的負債の解消
leveragestech
3
440
VueとViteで作るUIコンポーネントライブラリ ~デザインシステムとプロダクトの理想的な分離を目指して~ / 20241019_cloudsign_VueFesJapan2024_1
bengo4com
8
3k
さくっと実践!Postmanを活用した高品質で持続可能なAPI管理
yokawasa
5
350
寒冷地稲作の歴史にみるコミュニティ
miu_crescent
2
130
地域DXにおけるGrafana活用事例
wacky
0
370
AIとともに歩んだライブラリアップデートの道のり/ vue-fes-japan-2024-link-and-motivation
lmi
2
580
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
26
700
Navigating Team Friction
lara
183
14k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
23k
Why Our Code Smells
bkeepers
PRO
334
57k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Done Done
chrislema
181
16k
Building Adaptive Systems
keathley
38
2.2k
The Power of CSS Pseudo Elements
geoffreycrofte
71
5.3k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Designing for humans not robots
tammielis
249
25k
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