ビルド

ソースコードを実行可能な成果物に変換するプロセス

開発ツールCI/CD

ビルドとは

ビルド (Build) は、ソースコード (TypeScript, JSX) を実行可能な成果物 (JavaScript, HTML, CSS) に変換するプロセスである。トランスパイル、バンドル、最小化、型チェックを含む。

ビルドパイプライン

ビルドパイプラインを図で示す。

TypeScript → トランスパイル → JavaScript
JSX → トランスパイル → JavaScript
CSS Modules → バンドル → CSS
画像 → 最適化 → WebP
全体 → バンドル → チャンク分割 → 最小化 → 成果物

ビルドツール

主なビルドツールを以下にまとめる。

ツール特徴用途
Vite高速、ESM ベース開発サーバー + ビルド
esbuild超高速 (Go 製)バンドル、トランスパイル
SWC超高速 (Rust 製)トランスパイル
webpack豊富なプラグインレガシー、複雑な設定
TurbopackRust 製、Next.jsNext.js の開発サーバー
tscTypeScript 公式型チェック

ビルドの最適化

ビルドの最適化を以下にまとめる。

最適化効果
Tree Shaking未使用コードの除去
コード分割ルートごとにチャンクを分割
最小化 (Minify)変数名の短縮、空白の除去
圧縮 (gzip/Brotli)ファイルサイズの削減
ソースマップデバッグ用のマッピング

package.json のスクリプト

package.json のスクリプトの例を示す。

{
  "scripts": {
    "dev": "vite",
    "build": "tsc && vite build",
    "preview": "vite preview",
    "typecheck": "tsc --noEmit",
    "lint": "eslint .",
    "test": "vitest"
  }
}

SAM のビルド

SAM のビルドの例を示す。

sam build
# → .aws-sam/build/ に Lambda 関数のビルド成果物を生成
# → esbuild で TypeScript をトランスパイル + バンドル

ビルド時間の短縮

ビルド時間の短縮を以下にまとめる。

手法効果
esbuild / SWCwebpack の 10〜100 倍高速
キャッシュ変更のないモジュールをスキップ
並列ビルドTurborepo でモノレポの並列ビルド
インクリメンタルビルド変更ファイルのみ再ビルド

現場での応用を知るには関連書籍も役立つ。

この記事は役に立ちましたか?

関連用語

関連する記事