Skip to content

Commit 445580f

Browse files
authored
Merge pull request #1731 from AtCoder-NoviSteps/#1619
💥 Force compiler into runes mode and replace UI library from Flowbite Svelte to Svelte 5 UI lib (#1619)
2 parents 542d707 + 851b85b commit 445580f

File tree

76 files changed

+1626
-903
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+1626
-903
lines changed

CONTRIBUTING.md

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,15 @@
2626
- JavaScriptのランタイム
2727
- [Node.js](https://nodejs.org): v22.x
2828
- 汎用フレームワーク
29-
- [Svelte](https://svelte.dev/): v5.x。後方互換性を優先しているが、Runes が利用できるように破壊的な変更が含まれる箇所を段階的に移行予定
29+
- [Svelte](https://svelte.dev/): v5.x。Runes mode で運用中
3030
- [SvelteKit](https://svelte.dev/): v2.x
3131
- UIライブラリ
32-
- [Flowbite Svelte](https://flowbite-svelte.com/)
32+
- [Svelte 5 UI lib](https://svelte-5-ui-lib.codewithshin.com/) - Svelte v5.xにおける[Flowbite Svelte](https://flowbite-svelte.com/)の代替ライブラリ。一部の属性名・値などが変更されていることに注意が必要
33+
- コンポーネントが未実装である場合は、主に[Flowbite](https://flowbite.com/)を暫定的に利用する
34+
- [Embla Carousel](https://github.com/davidjerleke/embla-carousel) - Svelte 5 UI lib ではカルーセルコンポーネントが未実装(2025年2月時点)なため、暫定的に導入している
35+
- Tailwind v4 に未対応(2025年2月時点)のため、[Skeleton](https://github.com/skeletonlabs/skeleton)などへ移行する可能性もある
3336
- [STWUI](https://stwui.vercel.app/): 開発が事実上終了した可能性が高いため、使用しているコンポーネントを調べて別のライブラリに移行する
37+
- [Lucide](https://github.com/lucide-icons/lucide) - アイコンライブラリ
3438
- テスティングフレームワーク
3539
- [Vitest](https://vitest.dev/): 単体テスト (ユーティリティ、コンポーネント)
3640
- [Playwright](https://playwright.dev/): e2eテスト
@@ -120,18 +124,17 @@
120124

121125
`docker compose exec web pnpm exec playwright install-deps`
122126

123-
`docker compose exec -e DATABASE_URL=postgresql://db_user:db_password@db:5432/test_db web pnpm prisma db push`
127+
`docker compose exec -e DATABASE_URL=postgresql://db_user:db_password@db:5432/test_db?pgbouncer=true&connection_limit=10&connect_timeout=60&statement_timeout=60000 -e DIRECT_URL=postgresql://db_user:db_password@db:5432/test_db web pnpm prisma db push`
124128

125129
`docker compose exec web pnpm prisma generate`
126130

127-
- 開発サーバ(port番号: 5173)を起動します。その後、以下のリンクを順番にクリックしてください。
131+
- 開発サーバ(port番号: 5174)を起動します。その後、以下のリンクを順番にクリックしてください。
128132

129133
- Note: リンクのアドレス・ポート番号は、環境によって変わる可能性もあります。
130134

131135
`docker compose exec web pnpm dev --host`
132136

133-
http://172.18.0.3:5173
134-
http://127.0.0.1:5173/
137+
[http://localhost:5174/](http://localhost:5174/)
135138

136139
- ホーム画面が起動し、ユーザの登録・ログインができれば、環境構築は完了です。
137140

@@ -166,11 +169,11 @@
166169

167170
- 以下のリンクをクリックしてください。
168171

169-
<http://127.0.0.1:5173/>
172+
<http://localhost:5174/>
170173

171174
- また、開発サーバの起動と同時に新しいブラウザタブでアプリを開くこともできます。
172175

173-
`pnpm dev -- --open`
176+
`pnpm dev --open`
174177

175178
- 先ほどとは異なるターミナルで以下のコマンドをそれぞれ実行すると、データベースの初期データ投入やローカル環境でのテーブル・サンプルデータが閲覧できます。
176179

@@ -268,6 +271,17 @@
268271

269272
### トラブルシューティング
270273

274+
- エラー: ローカル環境で開発用サーバを立ち上げても、ブラウザに表示されない
275+
276+
- 前提条件: Docker Desktop 4.30.0 以上、かつ、VSCode DevContainer で Vite を動かす場合。Windows、macOS で発生する
277+
- 原因: Dockerで、ホストが IPv4 のみを使用している場合でも、`::1` を返すようになったため
278+
- 対処方法: `vite.config` に、server の host を追記する
279+
- 参考資料
280+
- [Docker の Issues](https://github.com/docker/for-mac/issues/7276)
281+
- [Vite の Issues](https://github.com/vitejs/vite/issues/16522#issuecomment-2432846922)
282+
- [Zenn の記事](https://zenn.dev/onozaty/articles/docker-desktop-portforward-not-working)
283+
- [本プロジェクトでの対処状況](https://github.com/AtCoder-NoviSteps/AtCoderNoviSteps/issues/814#issuecomment-2131173142)
284+
271285
- エラー: Docker Desktop で Vite を利用したときに Segmentation Fault が発生
272286

273287
- 対処方法: Docker Desktopで「Use Visualization Framework」のチェックを外す

package.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,6 @@
4848
"eslint": "9.20.0",
4949
"eslint-config-prettier": "10.0.1",
5050
"eslint-plugin-svelte": "2.46.1",
51-
"flowbite-svelte": "0.47.4",
52-
"flowbite-svelte-icons": "2.0.2",
5351
"globals": "15.14.0",
5452
"husky": "9.1.7",
5553
"jsdom": "26.0.0",
@@ -62,6 +60,7 @@
6260
"stwui": "0.21.2-next",
6361
"super-sitemap": "1.0.3",
6462
"svelte": "5.19.9",
63+
"svelte-5-ui-lib": "0.12.2",
6564
"svelte-check": "4.1.4",
6665
"svelte-meta-tags": "4.1.0",
6766
"sveltekit-superforms": "2.23.1",
@@ -82,8 +81,11 @@
8281
"@types/node": "22.13.1",
8382
"autoprefixer": "10.4.20",
8483
"debug": "4.4.0",
84+
"embla-carousel-autoplay": "8.5.2",
85+
"embla-carousel-svelte": "8.5.2",
8586
"flowbite": "2.5.2",
8687
"lucia": "2.7.7",
88+
"lucide-svelte": "^0.475.0",
8789
"playwright": "1.50.1",
8890
"pnpm": "10.2.1",
8991
"prisma-erd-generator": "2.0.4",
@@ -93,5 +95,5 @@
9395
"vercel": "41.0.3",
9496
"xss": "1.0.15"
9597
},
96-
"packageManager": "pnpm@9.15.2"
98+
"packageManager": "pnpm@10.2.1"
9799
}

pnpm-lock.yaml

Lines changed: 93 additions & 41 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)