Contents
SvelteKit プロジェクト デプロイ 方法を効率的に実施する5つのステップ
SvelteKitプロジェクトのデプロイは、開発者にとって重要な工程ですが、適切な準備と手法を用いることで時間短縮やミス防止が可能です。本記事では、VercelとNetlifyの最新連携方法を中心に、カスタムドメイン設定やCI/CD自動化といった実践的な手順を解説します。読者の中には「どのプラットフォームを選ぶべきか迷っている」という声も多いですが、記事の最後で簡潔な選択肢提示も行います。
SvelteKitプロジェクト構築時の準備チェックリスト
SvelteKitプロジェクトをスムーズにデプロイするためには、構築段階での準備が不可欠です。以下に、開発環境から導入までの必須項目を整理しました。
このセクションでは、プロジェクトの健全性を確保するために押さえるべき3つのポイントを解説します。
- プロジェクト構造とルーティング設定の確認
src/ディレクトリ配下の+layout.svelteやページファイルが正しく配置されているかチェック-
ルーティングに関する
routes.jsや+page.jsの定義を検証 -
適切なアダプターの導入
- Vercel向けに
@sveltejs/adapter-vercel、Netlify向けに@sveltejs/adapter-netlifyをインストール -
npm install @sveltejs/adapter-<プラットフォーム>コマンドで導入 -
環境設定ファイルの整備
.envファイルで秘密鍵やAPIトークンを管理svelte.config.jsにkit.adapterを指定(例:adapter: require('@sveltejs/adapter-vercel')())
ポイント:アダプターの導入タイミングは、プロジェクト初期段階に設定することを推奨します。
Vercelでのデプロイ手順(GitHub連携編)
VercelはSvelteKitプロジェクトとの連携が非常に滑らかで、Gitリポジトリと同期させることで自動ビルドが可能です。
このセクションでは、GitHubリポジトリからVercelへの連携を3ステップで解説します。
- GitHubリポジトリの作成
- GitHubにSvelteKitプロジェクトをプッシュ
-
リポジトリ名やブランチ設定(例:
main)を明確化 -
Vercelアカウントとの連携
- Vercel公式サイトで「New Project」を選択
-
GitHubリポジトリからプロジェクトを選択し、自動ビルドの有無を指定
-
デプロイ設定ファイルの追加
-
プロジェクトルートに
vercel.jsonを作成(例:
json
{
"build": {
"command": "npm run build",
"outputDirectory": ".svelte-kit"
}
} -
build.outputDirectoryをSvelteKitのデフォルト出力先に設定
注意点:
.envファイルはVercel上では自動読み込みされないため、vercel.jsonで環境変数を指定する必要があります。
Netlifyとの統合方法と環境変数管理
NetlifyもSvelteKitプロジェクトとの連携に最適なプラットフォームですが、独自の設定手順があります。特に環境変数の扱いは注意が必要です。
このセクションでは、Netlify CLIでの初期設定とCI/CD自動化を具体的に解説します。
- Netlify CLIによるプロジェクト登録
- 全局インストール:
npm install netlify-cli -g - プロジェクトディレクトリで
netlify init実行 -
サービスアカウントの作成とリポジトリ連携
-
ビルド設定ファイルの作成(netlify.toml)
toml
[build]
publish = ".svelte-kit"
command = "npm run build"
[[redirects]]
from = "/*"
to = "/index.html"
status = 200
- 環境変数の管理
- Netlifyダッシュボードで「Settings > Build & deploy > Environment variables」から設定
- セキュアな変数は
NETLIFY_ENV_VARS_SECURE=trueを指定
比較表:Vercel vs Netlifyのデプロイ特徴
| 項目 | Vercel | Netlify |
|---|---|---|
| 自動ビルド | GitHub連携時自動実行 | CLIやCIでの手動設定も可能 |
| 環境変数管理 | プロダクション環境専用 | 業務環境と開発環境を区別可 |
| カスタムドメイン設定 | 無料で有効(SSL含む) | フリー枠では制限あり |
CI/CDパイプラインの自動化設定
継続的インテグレーション(CI)とデプロイを連携させることで、手動作業を大幅に削減できます。GitHub Actionsはその代表的なツールです。
このセクションでは、VercelとNetlifyそれぞれ向けのワークフロー例を解説します。
-
Vercelへのデプロイワークフロー
yaml
name: Deploy to Vercel
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: npm install
- run: npm run build
- name: Deploy to Vercel
uses: vercel-actions/deploy@v1.0.2
with:
token: ${{ secrets.VERCEL_TOKEN }} -
Netlifyへのデプロイワークフロー
yaml
name: Deploy to Netlify
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: npm install
- run: npm run build
- name: Deploy to Netlify
uses: netlify/actions/deploy@1.0.2
with:
auth_token: ${{ secrets.NETLIFY_AUTH_TOKEN }}
重要なポイント:ワークフローで
npm run devなど本番ビルド以外のコマンドを実行しないように注意してください。
SSL証明書申請とカスタムドメイン設定
SSL証明書は現在では必須ですが、無料ツール(例: Let's Encrypt)を使うことでコストを抑えることができます。
このセクションでは、Certbotによる自動取得手順とドメイン設定の手順を解説します。
- Certbotのインストール
- Ubuntuの場合:
sudo apt install certbot -
macOS(Homebrew):
brew install certbot -
証明書の申請と自動再発行
bash
sudo certbot certonly --standalone -d example.com
# 自動更新設定 (cronなどに追加)
sudo crontab -e
0 3 * * * /usr/bin/certbot renew --quiet -
Webサーバーへの導入
- Nginxの場合:
nginx
server {
listen 443 ssl;
server_name example.com;123ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;}
注意事項:カスタムドメインのDNS設定(Aレコードなど)は、ドメインプロバイダーの管理画面で確実に設定してください。
プロジェクトデプロイ方法選定ガイド
本記事で解説したVercelとNetlifyはそれぞれ強みを持っていますが、選択する際には以下を考慮してください:
このセクションでは、プロジェクトの目的・規模に応じた導入判断基準を整理します。
- Vercelが適しているケース
- GitHub連携やCI/CD自動化が優先
-
カスタムドメイン設定が簡単な場合
-
Netlifyが適しているケース
- フロントエンドプロジェクトと密接に関係するツールキットが必要な場合
- 開発環境でのセキュアな変数管理が求められる場合
比較表:デプロイプラットフォーム選定基準
| 考慮要素 | Vercel | Netlify |
|---|---|---|
| GitHub連携 | ✅ | ✅ |
| 自動更新機能 | ✅ | ✅ |
| カスタムドメイン無料化 | ✅ | ⚠️(制限あり) |
| フロントエンドツールキット | 🟡 | ✅ |