技術とかの雑なToday I Learnedメモ

ビルドツールざっくり調べた

ビルドツールざっくり調べた

DiscordのBOTを作る上でビルドツールをどうしようかと思いビルドツールの比較検討をしている。

Native ESM 時代のフロントエンドビルドツールの動向

一年ちょっと前の記事だけどこれを基準に考えていこうと思っている。

ここらへん。

記事を見るまで、そもそもビルドツールとひとくくりにしていたがバンドルツールかコンパイラ(トランスパイラ)かでそもそも違うし、そこらへんの認識から曖昧だった。

この記事のESM CDNのskypack.devとesm.shで、

どちらもアクセス時に cloudflare workers を挟んでいて、 cache がなければ edge 上でビルドし、 KV Workers の edge cache に保存する(のでビルドされていないファイルを呼ぶと初回アクセスが遅い)。こういうところに cloudflare workers の使い道があるのが面白い。

ここでもCloudflare Workersが使われているらしい。

どれを使うか

どれを使うかが悩ましくて、そもそも自分の中に判断基準が存在していないのが原因。

最近名前をよく聞くのはesbuildなので気になっていたけど、名前を聞くだけとかじゃなくてそれぞれの特性を調べて見ていきたい。

Vite

  • No Bundleツール
  • 開発時はバンドルしないでESMのimportからソースコードを読み込むことで開発環境のビルドを高速にする
  • プロダクションビルドにはRollupを使う
  • TypeScriptのサポートはファイルのトランスパイルのみで型チェックを行わない

Rollup

esbuild

swc

  • コンパイルとバンドルができる
    • ミニファイはできない?
  • esbuildと同じくTypeScriptの型チェックは行われない

どれにしよう

悩ましいけど個人的に一番気になっているesbuildを使ってみようかな。

ビルドの早さはesbuildとswcがかなりいい勝負をしているっぽい。

型チェックや変更監視などの整備をしつつesbuildを使い、使ってみたら今度はswcも使ってみたい。