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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
ytaisei
March 27, 2024
Technology
490
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
BunがCommonJSをサポートする理由
フロントエンドTechCafe〜春のBun祭りLT会〜にて使用した資料。
参考資料:
https://bun.sh/blog/commonjs-is-not-going-away
ytaisei
March 27, 2024
More Decks by ytaisei
See All by ytaisei
TanStack Routerを新規プロダクトで1年間運用してみた結果
ytaisei
1
410
Reactを段階的に覗いてみる
ytaisei
3
2.1k
Reactのトランジションを覗いてみる
ytaisei
1
2.6k
Deep Dive Into React 〜React Fiber Architectureについて〜
ytaisei
2
530
React19で状態管理はどう変わるか
ytaisei
2
230
TanStackで効率的なルーティングとデータ取得を実現
ytaisei
10
2.6k
TanStack Routerで型安全かつ効率的なルーティングを実現
ytaisei
4
2.5k
TanStack Router SPA開発の選択肢になるか(+TanStack Query)
ytaisei
2
1.8k
【2023】SWR vs TanStack Query
ytaisei
1
2.3k
Other Decks in Technology
See All in Technology
ザ・データベース、MySQL ~ OSC 2026 Sendai ~
sakaik
0
140
SONiCのLinuxベースを活かしたZabbix監視
sonic
0
230
いまさら聞けない「仕様駆動開発入門」 〜AI活用時代の開発プロセスを考える〜
findy_eventslides
2
160
10年間のブログ発信を振り返って見えたWebアプリケーションエンジニアとしての軌跡
stefafafan
0
170
GitHub Copilot app最速の発信の裏側
tomokusaba
1
190
FPC(フレキシブル)基板にZephyr実装してみた。
iotengineer22
0
120
スタートアップにAmazon EKSは早すぎる? マルチプロダクト戦略を加速する Platform Engineeringの実践 / Is Amazon EKS Too Soon for Startups? Practical Platform Engineering to Accelerate a Multi-Product Strategy
elmodev09
1
380
LayerXにおけるセキュリティ管理の現在地と次の一手
tosho
0
250
自宅LLMの話
jacopen
1
660
Kubernetesにおける学習基盤とLLMOpsの概要
ry
1
320
攻撃者視点で考えるDetection Engineering
cryptopeg
3
2k
入門!AWS Blocks
ysuzuki
1
160
Featured
See All Featured
Producing Creativity
orderedlist
PRO
348
40k
The agentic SEO stack - context over prompts
schlessera
0
820
How STYLIGHT went responsive
nonsquared
100
6.2k
A better future with KSS
kneath
240
18k
YesSQL, Process and Tooling at Scale
rocio
174
15k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
Become a Pro
speakerdeck
PRO
31
6k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
270
Odyssey Design
rkendrick25
PRO
2
700
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
320
Raft: Consensus for Rubyists
vanstee
141
7.5k
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