『実践Svelte入門』を読んだ
実践Svelte入門を読んでの感想、気をつけておくと良さげなポイントなどのメモ。
評価やら感想やら
前提:本書に取り掛かる前の、筆者の関連しそうなスキルレベル
- フロントエンドの業務での開発経験はほとんどなし
- 過去にVue.jsの入門書は読んだ
- React,Next.jsは入門書を読んだ→『TypeScriptとReact/Next.jsでつくる実践Webアプリケーション開発』を読んだ - 空谷に吼える
- JavaScript,HTML,CSSについては基本だけある程度理解しているがうろ覚えなところがある程度
- フロントエンドの業務での開発経験はほとんどなし
書籍について
- Svelteに関心を持ち学び始めようとするひとの入り口としてとても良い書籍だと思う
- ステップの記述が詳細かつ親切なので、プログラミングそのものやWebアプリ開発、デプロイなどにそんなに慣れていないひともあまり躓くこともなくやり通せそう
- ただしJavaScriptやHTML、CSS、Node.jsとnpmについては一定の理解が前提 - 筆者は下記のAuth0の問題以外には全く躓くところなくスムーズに進められた
- 紹介されている技術について
- Svelte+SvelteKitがかなり気に入った
- ここまでフロントエンド技術全般にずっと苦手意識があったのだが、「おっ、これならもしかしたらイケそう」な気持ち
- Svelte、SvelteKitそれ自体の仕様としても、それらを利用して書くコードにしても、シンプルで理解しやすいという印象
- プレゼンテーションと裏側のロジックの結びつきの見通しが良い
- 独特なシンタックスもあるがそれほど量もなく、わりとすぐ慣れた
- Svelte+SvelteKitがかなり気に入った
本書のチュートリアルを実行するうえで気をつけておくと良さげなポイント
- 書籍としては利用するIDEは自由だが特にこだわりがなければSvelteの公式プラグインがあるVSCodeが推奨とのこと。筆者も普段から使っていたのでVSCodeを使用した。
- 5.3.2 ブラウザでアクセスする前にnpm installが必要
- 7.3.6 Vercelでの動作確認で/products/svelte-bookや/cartを見るとVercelのFUNCTION_INVOCATION_TIMEOUTエラーになった
- たぶんアプリをNode.jsのv16系で作っていたのが原因(書籍にはNode.jsのバージョン指定は特になかったと思う)。VercelでProjectのSettingsからGeneral/Node.jsバージョンをローカルと同様の16.xに変更したら直った(再デプロイのための空コミットが必要)。
- 8.2.6 Auth0ログインの動作確認でエラーに遭遇
- Auth0からメールで届いたMagic Linkをクリックすると"Something Went Wrong: The link must be opened on the same device and browser from which you submitted your email address."エラー
- localhostでなくVercelにデプロイしたもので試しても同じエラー、Chrome/EdgeやIncogintoモードなどいろいろ試してみてもダメ。
- 公開されている書籍のサンプルリポジトリからsrc以下をまるっとコピって来ても同じエラーになったのでコーディングの写経でミスっているわけでもないっぽい。
- いったんAuth0を利用するのを諦めて疑似ログイン機能をテキトーに書いて進めた
- Auth0サポート(無料ユーザーなのに親切に対応してくれている)に問い合わせてみているのでなにか判明したら追記する【→2023/6/8追記】原因(Auth0側のアップデートによる仕様変更)と解決方法が判明したので別記事にまとめた Auth0のPasswordlessログインで"Something Went Wrong: The link must be opened on the same device and browser from which you submitted your email address."エラーが出たので対処した - 空谷に吼える