Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BunがCommonJSをサポートする理由
Search
ytaisei
March 27, 2024
Technology
2
230
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
Deep Dive Into React 〜React Fiber Architectureについて〜
ytaisei
1
42
React19で状態管理はどう変わるか
ytaisei
2
74
TanStackで効率的なルーティングとデータ取得を実現
ytaisei
8
1.3k
TanStack Routerで型安全かつ効率的なルーティングを実現
ytaisei
4
1.5k
TanStack Router SPA開発の選択肢になるか(+TanStack Query)
ytaisei
2
1.2k
【2023】SWR vs TanStack Query
ytaisei
1
1.8k
React Queryは非同期の状態管理ライブラリだ
ytaisei
3
1.7k
アウトプットが与える影響 〜価値を最大化するための学習サイクル〜
ytaisei
2
1.9k
OpenAPIコード生成ライブラリを 『Orval』に移行した理由
ytaisei
1
3.8k
Other Decks in Technology
See All in Technology
論理レプリケーションを使ったDB統合
kkato1
0
310
Nihonbashi Test Talk #3_WebDriver BiDiと最新の実装状況 / WebDriver BiDi latest status
takeyaqa
1
150
2024/12/05 AITuber本著者によるAIキャラクター入門 - AITuberの基礎からソフトウェア設計、失敗談まで
sr2mg4
2
580
プロダクトマネージャーは 事業責任者の夢をみるのか pmconf2024
gimupop
2
8.9k
品質管理チームのEMとして大事にしていること / QA EM
nihonbuson
0
840
長年運用されているサービスの主要データ移行をサービス停止せず安全にリリースしました
phayacell
2
190
最近のUplift Modeling手法にRでトライ
hskksk
0
130
2000年てづくりキーボードの旅
tagomoris
1
170
農業用ダム監視を目的とした衛星SAR 干渉解析の適用性について
osgeojp
0
190
プロセス改善とE2E自動テストによる、プロダクトの品質向上事例
tomasagi
1
3.8k
Autonomous Database サービス・アップデート (FY25)
oracle4engineer
PRO
0
270
検証と資産化を形にするプロダクト組織へ/tapple_pmconf2024
corin8823
1
9.5k
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
181
21k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Into the Great Unknown - MozCon
thekraken
33
1.5k
Agile that works and the tools we love
rasmusluckow
328
21k
Why Our Code Smells
bkeepers
PRO
334
57k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
How to Think Like a Performance Engineer
csswizardry
21
1.2k
Bash Introduction
62gerente
608
210k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
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