Closed15

Web開発初心者がVitePressを使ってGitHub Pagesにアップロードするまで

mitsumitsu

初カキコ…ども…
俺みたいな新卒で気づいたら組み込みやらされてる野郎、他に、いますかっていねーか、はは

npmとかyarnとかpnpmがなんだかわかってないようなレベルからVuePress始めてみます

mitsumitsu

VuePress is now in maintenance mode. For a next-gen Vue-based SSG built on top of Vue 3 + Vite, check out VitePress.

https://github.com/vuejs/vuepress/blob/087f8a199de4436366aba8f8bf44571117612e53/README.md#status

リポジトリ見に行ったらメンテナスモードになってるじゃん。
VuePress-next(VuePress2)ってのもあるけど、こっちもまだベータ版みたい。
https://github.com/vuepress/vuepress-next

VitePressかVuePress-nextになりそうね

mitsumitsu

ChatGPTに聞いてみた

  • VitePress
    • Vite使っているから早いよ
    • 小・中規模向け
    • Vue3を最大限に使っているよ
    • コミュニティは小さいかも
    • プラグインも少ないかも
  • VuePress-next
    • Webpackだから遅いよ (Webpackってなんや)
    • 大規模向け
    • コミュニティでかいよ
    • プラグインいっぱいあるよ
    • 複雑なことやるならこっち
mitsumitsu

こういうときはstarを見て比べろと言われた気がする
2023/11/10時点だと

  • VuePress-next: 2k
  • VitePress: 9.4k
    なのでVitePressかな

あとVitePressはvuejs傘下だしこっちのほうが良さそう

VitePressを使うのでタイトルを変更します

mitsumitsu

まずはGet Startedを読む
(memo:ドキュメントが対象としているバージョンは1.0.0-rc.25)
https://vitepress.dev/guide/getting-started

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.

mitsumitsu

プロジェクト直下に作ったのは間違いな気がしてきた

プロジェクトルートを./pagesに変更します

mitsumitsu

VitePressについてわかったこと

  • .vitepressがあるディレクトリがある場所がルートディレクトリになる
  • *.mdがコンパイルされて*.htmlになる
  • /path/to/index.md/path/to/でアクセスされると表示される

なんとなくわかってきた……?

mitsumitsu

Gitで管理するときのメモ

.vitepress/cache.vitepress/distはgitignoreに入れる
今回だとディレクトリ構成はこんな感じなのでpages/.vitepress/cachepages/.vitepress/distになる

pages
|-- pages
|    `-- .vitepress
|         |-- dist
|         `-- cache
|-- package.json
`-- .gitignore

ところでnode使ったものってnode_modulesはgitignoreに入れる鉄則を聞いたことがあるんだけど、これnode_modulesってディレクトリは見当たらないね。どこにいったんだろ

mitsumitsu

node_modulesってディレクトリは見当たらないね。どこにいったんだろ

どうやらnpm installしないと生成されないっぽい?
あとnpm installしないとGitHub Actionsのデプロイも失敗するっぽい

mitsumitsu

faviconの設定

私のリポジトリ設定が悪いのか、これだと警告がでる……とはいえこの設定じゃないとfavicon表示されないんだよな
https://github.com/mitsu-yuki/pages/blob/04228d29fcc10513962de207347d65eed3086853/pages/.vitepress/config.mts#L8-L10

  head: [
    ['link', { rel: 'icon', href: './public/favicon.ico'}]
  ],

ググったりChatGPTに聞いても「お前のディレクトリ構成なら/favicon.icoでいいはず」と言われるので謎
GitHub Actionでデプロイしてから考えましょう

mitsumitsu

memo: GitHub Actionsハマりポイント

これを丸々コピーして動かした
https://vitepress.dev/guide/deploy#github-pages

これは完全に私が悪いので何も言えないが個人的にハマったポイント

  • package-lock.jsonを入れ忘れた
    • npm installで解決した
  • コマンド中に現れるパスの間違い
  • npm install -D
    • どうやらdevDependenciesvitepressがなかったらしい。ChatGPTありがとう
このスクラップは3ヶ月前にクローズされました