Web開発初心者がVitePressを使ってGitHub Pagesにアップロードするまで
初カキコ…ども…
俺みたいな新卒で気づいたら組み込みやらされてる野郎、他に、いますかっていねーか、はは
npmとかyarnとかpnpmがなんだかわかってないようなレベルからVuePress始めてみます
VuePress is now in maintenance mode. For a next-gen Vue-based SSG built on top of Vue 3 + Vite, check out VitePress.
リポジトリ見に行ったらメンテナスモードになってるじゃん。
VuePress-next(VuePress2)ってのもあるけど、こっちもまだベータ版みたい。
VitePressかVuePress-nextになりそうね
ChatGPTに聞いてみた
- VitePress
- Vite使っているから早いよ
- 小・中規模向け
- Vue3を最大限に使っているよ
- コミュニティは小さいかも
- プラグインも少ないかも
- VuePress-next
- Webpackだから遅いよ (Webpackってなんや)
- 大規模向け
- コミュニティでかいよ
- プラグインいっぱいあるよ
- 複雑なことやるならこっち
こういうときはstarを見て比べろと言われた気がする
2023/11/10時点だと
- VuePress-next: 2k
- VitePress: 9.4k
なのでVitePressかな
あとVitePressはvuejs傘下だしこっちのほうが良さそう
VitePressを使うのでタイトルを変更します
まずはGet Startedを読む
(memo:ドキュメントが対象としているバージョンは1.0.0-rc.25)
npm, yarn, pnpm, bunに対応しているらしい(bunって結構最近に1.0出たばっかでは……?)
とりあえず長いものには巻かれろの精神でnpm使います
npm add -D vitepress
npx vitepress init
対話的なウィザードに答えて表示されたコマンドを実行すればページが表示された
┌ Welcome to VitePress!
│
◇ Where should VitePress initialize the config?
│ ./
│
◇ Site title:
│ mitsu-yuki's page
│
◇ Site description:
│ mitsu-yuki's page
│
◇ Theme:
│ Default Theme
│
◇ Use TypeScript for config and theme files?
│ Yes
│
◇ Add VitePress npm scripts to package.json?
│ Yes
│
└ Done! Now run npm run docs:dev and start writing.
プロジェクト直下に作ったのは間違いな気がしてきた
プロジェクトルートを./pagesに変更します
VitePressについてわかったこと
-
.vitepress
があるディレクトリがある場所がルートディレクトリになる -
*.md
がコンパイルされて*.html
になる -
/path/to/index.md
は/path/to/
でアクセスされると表示される
なんとなくわかってきた……?
Markdownの書き方について読んでみる
対応しているのはこんな感じ
- コードブロック
- 絵文字
- カスタムコンテンツ (色で囲むやつ。これ便利だね)
あとはプラグインを入れるとMathJaxにも対応させれるらしい。アツイ。
サイドバーのカスタマイズ
プロジェクトルートにある.vitepress/config.mts
をいじってサイドバーの内容を変える
てっきり各ディレクトリに.vitepress/config.mts
を作ってやるものかと思った。そうじゃないらしい
Gitで管理するときのメモ
.vitepress/cache
と.vitepress/dist
はgitignoreに入れる
今回だとディレクトリ構成はこんな感じなのでpages/.vitepress/cache
とpages/.vitepress/dist
になる
pages
|-- pages
| `-- .vitepress
| |-- dist
| `-- cache
|-- package.json
`-- .gitignore
ところでnode使ったものってnode_modules
はgitignoreに入れる鉄則を聞いたことがあるんだけど、これnode_modules
ってディレクトリは見当たらないね。どこにいったんだろ
node_modulesってディレクトリは見当たらないね。どこにいったんだろ
どうやらnpm install
しないと生成されないっぽい?
あとnpm install
しないとGitHub Actionsのデプロイも失敗するっぽい
faviconの設定
私のリポジトリ設定が悪いのか、これだと警告がでる……とはいえこの設定じゃないとfavicon表示されないんだよな
head: [
['link', { rel: 'icon', href: './public/favicon.ico'}]
],
ググったりChatGPTに聞いても「お前のディレクトリ構成なら/favicon.ico
でいいはず」と言われるので謎
GitHub Actionでデプロイしてから考えましょう
解決
ディレクトリ構成はこう
pages
|-- .vitepress
|-- public
| |-- favicon.ico
|-- assets
`-- index.md
github pagesのURLがhttps://<username>.github.io/<repository>/になるので、favicon.icoのパスは/pages/favicon.ico
で指定する必要があった
設定できたコミットはこれ
memo: GitHub Actionsハマりポイント
これを丸々コピーして動かした
これは完全に私が悪いので何も言えないが個人的にハマったポイント
-
package-lock.json
を入れ忘れた-
npm install
で解決した
-
- コマンド中に現れるパスの間違い
- 上記サイトだと
./docs
にデプロイすることを前提にパスを指定しているため編集が必要 - この変更が必要だった https://github.com/mitsu-yuki/pages/commit/6bae599b50ed239c247c6801ae6048c67c1e875b
- 上記サイトだと
-
npm install -D
- どうやら
devDependencies
にvitepress
がなかったらしい。ChatGPTありがとう
- どうやら
タグがプッシュされたらActionsが走るように変更した
memo: Actions側の環境も編集すること(とても助かりました)