SvelteKit パブリックベータ版リリース
皆様からのフィードバックをお待ちしております
ついにその時が来ました。5ヶ月、数百コミットを経て、ついにSvelteKitベータ版をお試しいただけます。まだ完成ではありません。既知のバグがいくつかあり、実装されていない機能もいくつかあります。しかし、現状には非常に満足しており、皆様にお試しいただくのが待ちきれません。
新規プロジェクトの作成は簡単です
# create the project
mkdir my-app
cd my-app
npm init svelte@next
# install dependencies
npm install
# start dev server and open a browser tab
npm run dev -- --open
ドキュメントはsvelte.dev/docs/kitにあります。SapperアプリをSvelteKitに移行したい場合は、svelte.dev/docs/kit/migratingに手順が記載されています。
ソースコードはgithub.com/sveltejs/kitで公開されています。準備が整うまで、IssueとPull Requestは無効になっていますが、近いうちに完全にオープンにする予定です。
SvelteKitとは?
Svelte版のNext.jsと考えてください。サーバーサイドレンダリング、ルーティング、JSとCSSのコード分割、様々なサーバーレスプラットフォーム用のアダプターなどを備えた、Svelteでアプリを構築するためのフレームワークです。
Sapperをご存知の方は、SvelteKitはSapperの後継です。
SnowpackからViteへ
発表ビデオでSnowpackについて熱く語っていた後、SvelteKitが内部でViteを使用していることに驚くかもしれません。SvelteKitの開発当初、Snowpackを試したときは、一目惚れでした。
Snowpackは全く新しいカテゴリーの開発ツールを生み出しました。webpackやRollupでここ数年行ってきたように、開発中にアプリを*バンドル*するのではなく、Snowpackはブラウザのネイティブ`import`を使用し、Svelteコンポーネントなどをオンザフライで1:1変換する*アンバンドル開発サーバー*です。その結果、高速な起動、シンプルなキャッシュ、インスタントホットモジュールリロードを実現します。この開発手法を一度体験すると、他の方法には戻れなくなるでしょう。
ViteはSnowpackと同じカテゴリーに属します。Vite 1はSvelteKitには適していませんでした(Vue中心(ViteとVueはどちらもEvan You氏によって作成されています)で、サーバーサイドレンダリングが困難でした)。しかし、Vite 2はフレームワークに依存せず、SSRをコアに設計されています。また、以前は独自に実装する必要があったCSSコード分割などの強力な機能も備えています。2つの技術を並べて評価した結果、ViteはSvelteKitの要件により合致しており、私たちが思い描くフレームワークを提供する上で最適な選択肢であると結論付けざるを得ませんでした。
Snowpackチームには、開発初期の緊密な協力と、今後数年間のWeb開発の道を切り開いてくれたことに、深く感謝しています。素晴らしいツールなので、ぜひお試しください。
究極のドッグフーディング
SvelteKitはまだベータ版ですが、本番環境で使用されていないわけではありません。
私の仕事はニューヨークタイムズで、過去12ヶ月の大半をコロナウイルストラッカーの開発に費やしました。これは、Timesのグラフィックの大部分を支えるワークフローのカスタマイズ版を使用していますが、大規模な複数ページのプロジェクトには設計されていません。昨年末、米国の約3,000の郡ごとにページを作成することを決定した時、プロジェクトを完全に再構築する必要があることにすぐに気づきました。
完成には程遠い状態でしたが、SvelteKitは私たちの特殊な要件を満たす唯一のフレームワークでした。(ニュースルームで働いていて、CMSと格闘したことがある人なら、私の言っていることがわかるでしょう。)現在、SvelteKitは郡のリスクページを支えており、既存のページをSvelteKitアプリに移行する作業を進めています。
未完成のソフトウェアを使用して、何百万人もの人に見られるアプリを構築することはリスクであり、一般的にはお勧めしません。しかし、アプリの開発速度を大幅に向上させることができ、フレームワーク自体も本来よりもはるかに強力なものになりました。
1.0への道
1.0マイルストーンの未解決の問題のリストは、イシュートラッカーで確認できます。それと並行して、ドキュメントの更新とアダプターの追加を計画しています。
しかし、最も重要なのは、最高のアプリフレームワークを作るために、皆様からのフィードバックが必要です。ぜひお試しいただき、不足している部分をお知らせください。
「ここにドラゴンがいる」という警告とドキュメントの不足にもかかわらず、SvelteKitを試してくれた皆様に感謝します。皆様からのフィードバックは非常に貴重でした。特に、公式ドキュメントがない時期に非公式ドキュメントとWindowsサポートを追加したフォークをメンテナンスしてくれたGrygrFlzr氏、そしてSviteでの活動がSvelteKitのVite統合に不可欠な基礎を築いてくれたdominikg氏の功績を称えたいと思います。お二方とも、今ではチームに迎え入れられています。