OSS探訪GitHubでログイン

Svelteで画面とサーバー処理を一つの経路構成にまとめる

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
20,836
主要言語
JavaScript
ライセンス
MIT
リポジトリ最終更新
2026/10/05
ページ内ナビ

概要

SvelteKitは、SvelteでWebアプリケーションを作るための基盤です。ファイルに基づく経路、サーバー側の読み込みとフォーム処理、事前生成やサーバー描画を扱えます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

経路ごとに画面とサーバー処理を実装する

+page.svelteが画面を、+page.server.jsがサーバー側の読み込みやフォームアクションを担当します。通常のHTMLフォームから始め、必要に応じてJavaScriptで段階的に強化できます。

出典:[4][5]

向いている用途

画面遷移とデータ更新を一つの構成で扱う

小さな入力フォームから認証付きアプリケーションまで同じ経路構造で広げられます。公式作成ツールで最小プロジェクトを作り、localhostで送信結果を確認できます。

出典:[3][5]

導入前の確認

Node.js版とサーバー専用の境界を固定する

固定コミットの@​sveltejs/kit 3.0.0はNode.js 22.17以上を要求します。秘密情報はサーバー専用モジュールで扱い、配布先に対応するアダプターを選ぶ必要があります。

出典:[2][6][7]

参考にした公式資料

  1. [1]SvelteKit README at fixed commit(2026-10-05)
  2. [2]@sveltejs/kit 3.0.0 package(2026-10-05)
  3. [3]Creating a project(2026-10-05)
  4. [4]Advanced routing(2026-10-05)
  5. [5]Form actions(2026-10-05)
  6. [6]Private environment variables(2026-10-05)
  7. [7]Adapters(2026-10-05)
  8. [8]SvelteKit MIT license(2026-10-05)
  9. [9]SvelteKit GitHub metadata(2026-10-05)
編集部からの補足

Svelteで画面とサーバー処理をまとめ、段階的に強化されるフォームを作りたいチーム向けです。実際の送信結果を確認し、配布先に合うアダプターと秘密情報の境界を選んでください。

3ステップで試す

  1. 1

    公式作成ツールで最小プロジェクトを作る

    Node.js 22.17以上とnpmが必要です。固定したsv 1.1.0でJavaScriptプロジェクトを作ります。

    node -e 'const [a,b]=process.versions.node.split(".").map(Number);if(a<22||(a===22&&b<17))process.exit(1)' && npx --yes sv@1.1.0 create sveltekit-demo --template minimal --types jsdoc --no-add-ons --install npm && cd sveltekit-demo
  2. 2

    フォームアクションを追加してビルドする

    POSTされたnameをサーバー側で読み、画面へ挨拶を返す経路を追加します。

    printf '%s\n' "export const actions = { default: async ({ request }) => { const data = await request.formData(); return { message: 'Hello, ' + data.get('name') + '!' }; } };" > src/routes/+page.server.js && printf '%s\n' '<script>let { form } = $props();</script>' '<form method="POST"><input name="name" value="Codex"><button>Greet</button></form>' '{#if form?.message}<p>{form.message}</p>{/if}' > src/routes/+page.svelte && npm run build
  3. 3

    localhostで送信と停止を確認する

    ローカル専用ポートへCodexを送信して挨拶を確認します。起動したプロセスを停止し、そのポートへ接続できなくなったことを確認します。

    ( set -eu; port=$(node -e 'const n=require("node:net").createServer();n.listen(0,"127.0.0.1",()=>{console.log(n.address().port);n.close()})'); pid=""; cleanup(){ if [ -n "$pid" ];then kill "$pid" 2>/dev/null||true;wait "$pid" 2>/dev/null||true;fi;}; trap cleanup EXIT HUP INT TERM; node ./node_modules/vite/bin/vite.js dev --host 127.0.0.1 --port "$port" --strictPort > vite.log 2>&1 & pid=$!; i=0;until curl -fsS --max-time 1 "http://127.0.0.1:$port/" >/dev/null;do i=$((i+1));[ "$i" -lt 20 ];sleep .25;done; curl -fsS --max-time 3 -X POST -H 'Content-Type: application/x-www-form-urlencoded' --data 'name=Codex' "http://127.0.0.1:$port/" | grep -F 'Hello, Codex!';cleanup;pid="";node -e 'const s=require("node:net").createConnection({host:"127.0.0.1",port:+process.argv[1]});s.setTimeout(1000);s.once("connect",()=>process.exit(1));s.once("timeout",()=>process.exit(1));s.once("error",x=>process.exit(x.code==="ECONNREFUSED"?0:1))' "$port";trap - EXIT HUP INT TERM )
公式READMEで確認

成長

成長の推移 · 直近30日

20,836 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
151
Open PR
103

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • svelte
Stars
20,836
Forks
2,345
Watchers
147
Open Issues
735
Contributors
448
所有者種別
Organization
主要言語
JavaScript
ライセンス
MIT
リポジトリ最終更新
2026/10/05

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?