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
110
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 Router SPA開発の選択肢になるか(+TanStack Query)
ytaisei
1
580
【2023】SWR vs TanStack Query
ytaisei
1
1.3k
React Queryは非同期の状態管理ライブラリだ
ytaisei
2
1.3k
アウトプットが与える影響 〜価値を最大化するための学習サイクル〜
ytaisei
2
1.5k
OpenAPIコード生成ライブラリを 『Orval』に移行した理由
ytaisei
1
2.5k
Other Decks in Technology
See All in Technology
How to do well in consulting–Balkan Ruby 2024
irinanazarova
0
110
Google Cloud Next '24でブログを10本書いた方法と勉強会を沸かせた方法
yasumuusan
0
320
生成AIの変革の時代に、直近1年で直面した課題とその解決策
ktc_wada
0
480
【SORACOM UG 東海】あらゆるモノがつながる社会へ、IoT と SORACOM
soracom
PRO
1
130
Grafana x PagerDuty Better Together
jacopen
1
210
家族アルバム みてねにおけるGrafana活用術 / Grafana Meetup Japan Vol.1 LT
isaoshimizu
1
880
地理空間データ可視化・解析・活用ソリューション Pacific Spatial Solutions (PSS)
pacificspatialsolutions
0
320
開発生産性大幅アップ!Postman VS Code拡張機能
nagix
3
550
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
4
16k
【NW X Security JAWS#3】L3-4:AWS環境のIPv6移行に向けて知っておきたいこと
shotashiratori
1
590
リテール金融(キャッシュレス・ネット銀行・ネット証券)の競争環境と経済圏
8maki
0
1.5k
生産性向上チームの紹介
cybozuinsideout
PRO
1
900
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
5
1.3k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
123
39k
GitHub's CSS Performance
jonrohan
1025
450k
Imperfection Machines: The Place of Print at Facebook
scottboms
261
12k
Into the Great Unknown - MozCon
thekraken
13
1k
Code Reviewing Like a Champion
maltzj
515
39k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
242
1.2M
Ruby is Unlike a Banana
tanoku
96
10k
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