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
160
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
TanStackで効率的なルーティングとデータ取得を実現
ytaisei
6
810
TanStack Routerで型安全かつ効率的なルーティングを実現
ytaisei
4
1.1k
TanStack Router SPA開発の選択肢になるか(+TanStack Query)
ytaisei
2
870
【2023】SWR vs TanStack Query
ytaisei
1
1.6k
React Queryは非同期の状態管理ライブラリだ
ytaisei
3
1.6k
アウトプットが与える影響 〜価値を最大化するための学習サイクル〜
ytaisei
2
1.7k
OpenAPIコード生成ライブラリを 『Orval』に移行した理由
ytaisei
1
3.1k
Other Decks in Technology
See All in Technology
Android研修【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
100
AWSサービスメニュー開発をしていてAWSを好きだ!と感じた瞬間
toru_kubota
0
130
大規模ドラレコデータ収集・機械学習基盤を支える AWS CDK 〜導入・運用事例紹介〜
pemugi
0
110
AWSでRAGを作る法方
sonoda_mj
1
140
AOAI Dev Day LLMシステム開発 Tips集
hirosatogamo
15
3.8k
セキュリティ研修 Day1【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
160
ゆめみのアクセシビリティの現在地と今後
ryokatsuse
3
290
DevIO2024_レガシー運用からの脱却 -クラウド活用の実践事例とベストプラクティス-
jun2882
0
210
成長期に歩みを止めないための創業期の開発文化形成
mayah
6
420
What is DRE? - Road to SRE NEXT@広島
chanyou0311
3
630
シフトレフトで挑む セキュリティの生産性向上
sekido
PRO
0
270
ここがすごいよ! AWS Systems Manager!
saichan11
0
1.8k
Featured
See All Featured
RailsConf 2023
tenderlove
16
720
Mobile First: as difficult as doing things right
swwweet
219
8.8k
The Invisible Side of Design
smashingmag
294
50k
Rebuilding a faster, lazier Slack
samanthasiow
78
8.5k
A Philosophy of Restraint
colly
200
16k
Stop Working from a Prison Cell
hatefulcrawdad
266
20k
Build The Right Thing And Hit Your Dates
maggiecrowley
28
2.2k
The Illustrated Children's Guide to Kubernetes
chrisshort
39
47k
What the flash - Photography Introduction
edds
65
11k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
149
45k
What's new in Ruby 2.0
geeforr
338
31k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
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