<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>VitePress on note</title><link>https://blog.task4233.dev/tags/vitepress/</link><description>Recent content in VitePress on note</description><generator>Hugo</generator><language>ja-JP</language><copyright>©task4233</copyright><lastBuildDate>Mon, 11 May 2026 03:05:33 +0900</lastBuildDate><atom:link href="https://blog.task4233.dev/tags/vitepress/index.xml" rel="self" type="application/rss+xml"/><item><title>VuePress 1.x から VitePress へポートフォリオサイトを移行した記録</title><link>https://blog.task4233.dev/posts/migrate-vuepress-to-vitepress/</link><pubDate>Mon, 11 May 2026 03:05:33 +0900</pubDate><guid>https://blog.task4233.dev/posts/migrate-vuepress-to-vitepress/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://task4233.dev/"&gt;task4233.dev&lt;/a&gt; はもともと &lt;strong&gt;VuePress 1.x&lt;/strong&gt; で運用していたポートフォリオ兼テックブログだった。テックブログとしての利用はすでに別ドメインへ移しており、本ドメインは実質的にプロフィールページとしてしか使っていなかった。&lt;/p&gt;
&lt;p&gt;そのまま放置していたが、ここ最近の状況がよろしくなかった:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;VuePress 1 系の最終リリースは &lt;strong&gt;2023-08&lt;/strong&gt;（執筆時点で 2 年以上前）&lt;/li&gt;
&lt;li&gt;ビルドに &lt;code&gt;NODE_OPTIONS='--openssl-legacy-provider'&lt;/code&gt; が必須（modern Node との非互換）&lt;/li&gt;
&lt;li&gt;Dependabot 経由の transitive 脆弱性 PR が定期的に降ってくる（webpack 4 世代の依存ツリー）&lt;/li&gt;
&lt;li&gt;そして決定打、&lt;strong&gt;自動デプロイが 2023-01-06 から止まっていた&lt;/strong&gt;ことが調査して判明した&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;腰を据えて移行することにした。スコープは &lt;strong&gt;トップページのみ&lt;/strong&gt;（プロフィール／Publications／Employments 等を載せたシングルページ）。記事は別ドメインに集約済みなので、本ドメイン側に残っていた旧記事群はこの機会に撤去することとし、移行対象から最初から外した。&lt;/p&gt;
&lt;p&gt;同じような VuePress 1 サイトを抱えている人の参考になれば。&lt;/p&gt;
&lt;h2 id="なぜ-vuepress-2-にしなかったのか"&gt;なぜ VuePress 2 にしなかったのか&lt;/h2&gt;
&lt;p&gt;最初に検討するべきは「VuePress 2 へのアップグレード」だ。同じ系統で済むなら、それが一番楽に見える。&lt;/p&gt;
&lt;p&gt;しかし、VuePress 2 は npm の &lt;code&gt;next&lt;/code&gt; タグで RC が長期間配信されているだけで、執筆時点でも GA に到達していない。さらに調査を進めると、v1 → v2 は &lt;strong&gt;アップグレードではなく実質書き直し&lt;/strong&gt;であることが分かった:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Vue 2 → Vue 3&lt;/strong&gt; のメジャーアップ（カスタムコンポーネントに手が入っているなら全書き直し）&lt;/li&gt;
&lt;li&gt;設定ファイルは &lt;strong&gt;CommonJS → ESM 必須&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;バンドラーが暗黙ロードでなくなり、&lt;code&gt;@vuepress/bundler-vite&lt;/code&gt; 等を明示的に install&lt;/li&gt;
&lt;li&gt;プラグイン参照が文字列指定不可、&lt;code&gt;import&lt;/code&gt; した関数を渡す形式に&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;加えて、私のサイトはデフォルトテーマを &lt;code&gt;eject&lt;/code&gt; してアクセント色を変えていた。v2 ではこの ejected theme が完全に無効化されるため、&lt;strong&gt;カスタマイズ部分は丸ごと書き直し&lt;/strong&gt;になる。&lt;/p&gt;</description></item></channel></rss>