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
190
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
48
TanStackで効率的なルーティングとデータ取得を実現
ytaisei
7
1k
TanStack Routerで型安全かつ効率的なルーティングを実現
ytaisei
4
1.2k
TanStack Router SPA開発の選択肢になるか(+TanStack Query)
ytaisei
2
980
【2023】SWR vs TanStack Query
ytaisei
1
1.7k
React Queryは非同期の状態管理ライブラリだ
ytaisei
3
1.6k
アウトプットが与える影響 〜価値を最大化するための学習サイクル〜
ytaisei
2
1.8k
OpenAPIコード生成ライブラリを 『Orval』に移行した理由
ytaisei
1
3.3k
Other Decks in Technology
See All in Technology
Hyperledger Fabricの成長、成熟を振り返る / Looking back history of Hyperledger Fabric
gakumura
0
180
Evolving DevOps Teams and Flexible Organizational Culture
kakehashi
1
130
強いチームを夢見て-PMからSREに転身して1年の振り返り / 20240906_bengo4_sre
bengo4com
1
750
なぜクラウドサービスで Web コンソールを提供するのか
shuta13
4
1.3k
Discover Your Tailored Platform Strategy with Real-World Practice
hhiroshell
1
130
Azure Cosmos DB での時系列ログの運用と改善
sansantech
PRO
0
190
いまからでも遅くない! コンテナでWebアプリケーションを 動かしてみよう(1)Gitハンズオン
nomu
0
280
エンジニア視点で見る、 組織で運用されるデザインシステムにするには
shunya078
1
160
2024年版 運用者たちのLLM
nwiizo
3
290
歴史と背景から改めて振り返るVPC
shotashiratori
2
220
Bidirectional Quadratic Voting Leveraging Issue-Based Matching
kentaro
2
170
Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
15
39k
Featured
See All Featured
Bash Introduction
62gerente
608
210k
How to Ace a Technical Interview
jacobian
275
23k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
157
15k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
190
16k
Making the Leap to Tech Lead
cromwellryan
128
8.8k
Fontdeck: Realign not Redesign
paulrobertlloyd
80
5.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
22
580
How GitHub Uses GitHub to Build GitHub
holman
472
290k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
52k
A Modern Web Designer's Workflow
chriscoyier
690
190k
Build The Right Thing And Hit Your Dates
maggiecrowley
29
2.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