【Vue 3】Vue 3.5 + Vite 7 + Vue Router 5 へのアップグレード手順 - 型エラーの解決まで

PUBLISHED 2026-02-07

Vue 3 プロジェクトの依存パッケージを最新版にアップグレードする際、Vue 本体だけでなく Vue Router、Vite、TypeScript など複数のパッケージを同時に更新する必要があります。

この記事では、Vue 3.3 → 3.5、Vue Router 4 → 5、Vite 7.x 対応の一連のアップグレード手順と、発生しやすいエラーの解決方法を解説します。

アップグレード対象

今回のアップグレードで更新するパッケージの一覧です。

パッケージ変更前変更後備考
vue^3.3.11^3.5.27マイナーバージョンアップ
vue-router^4.2.5^5.0.2メジャーバージョンアップ
vuetify^3.4.9^3.11.8マイナーバージョンアップ
typescript~5.3.0~5.9.3メジャーバージョンアップ
@types/node^18.19.3^22.12.0Vite 7.x 要件
@vue/tsconfig^0.5.0^0.8.1マイナーバージョンアップ
⚠️

vue-router は 4.x → 5.x のメジャーバージョンアップです。API の大幅な変更はありませんが、型定義の厳格化やデフォルト動作の変更がある場合があります。アップグレード前にリリースノートを確認してください。

アップグレード手順

アップグレードの流れ

1

Step 1

package.json 更新

2

Step 2

依存関係の解決

3

Step 3

型エラーの修正

4

Step 4

ビルド確認

Step 1: package.json のバージョンを更新

まず package.json の依存パッケージバージョンを更新します。

{
  "dependencies": {
    "vue": "^3.5.27",
    "vue-router": "^5.0.2",
    "vuetify": "^3.11.8"
  },
  "devDependencies": {
    "@types/node": "^22.12.0",
    "@vue/tsconfig": "^0.8.1",
    "typescript": "~5.9.3"
  }
}
💡 各パッケージの最新バージョン確認

npm view <パッケージ名> version で最新バージョンを確認できます。まとめて確認する場合は npx npm-check-updates が便利です。

Step 2: npm install で依存関係を解決

npm install

よくあるエラー: ERESOLVE could not resolve

Vite 7.x は @types/node^20.19.0 以上を要求します。@types/node が古いままだとインストールに失敗します。

npm error code ERESOLVE
npm error ERESOLVE could not resolve
npm error peerOptional @types/node@"^20.19.0 || >=22.12.0" from vite@7.3.1

@types/node^22.12.0 に更新してから再度 npm install を実行してください。

Step 3: 型チェックエラーの修正

npm install が成功したら、ビルドを実行して型チェックを確認します。

npm run build

エラー 1: @vitejs/plugin-vue の型エラー

node_modules/@vitejs/plugin-vue/dist/index.d.mts(120,94): error TS1003: Identifier expected.

TypeScript のバージョンが古い場合に発生します。typescript~5.9.3 に更新することで解消します。

エラー 2: .vue モジュールの型宣言が見つからない

src/router/index.ts(2,22): error TS7016: Could not find a declaration file
  for module '@/views/HomeView.vue'.
💡 原因

Vite 7.x では vite/client.d.ts から .vue ファイルのモジュール型宣言が削除されました。以前は Vite が自動的に .vue ファイルの型を提供していましたが、この機能がなくなったため手動で追加が必要です。

プロジェクトルートの env.d.ts に以下の型宣言を追加します。

// env.d.ts
/// <reference types="vite/client" />

declare module '*.vue' {
  import type { DefineComponent } from 'vue'
  const component: DefineComponent<{}, {}, any>
  export default component
}
✅ Vite 7.x(手動追加が必要)

env.d.ts に declare module '*.vue' を明示的に記述する

❌ Vite 6.x 以前(自動提供)

vite/client.d.ts に含まれていたため、何もしなくても .vue の型が解決された

Step 4: ビルド確認

すべての修正が完了したら、ビルドが通ることを確認します。

npm run build

型チェックとビルドの両方が成功すれば、アップグレード完了です。

Vue Router 4 → 5 の主な変更点

Vue Router 5 では API の大幅な変更はなく、既存コードがそのまま動作するケースがほとんどです。主な変更点は以下の通りです。

項目変更内容
TypeScript 型定義より厳格な型定義に変更
ナビゲーションガード戻り値の型が明確化
<script setup> 対応Composition API との統合が強化

基本的なルート定義はそのまま使えます。

// router/index.ts - 基本的な変更は不要
import { createRouter, createWebHistory } from 'vue-router'
import HomeView from '@/views/HomeView.vue'

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: '/',
      name: 'home',
      component: HomeView,
    },
  ],
})

export default router

Sass @import の非推奨警告

アップグレード後、以下のような警告が表示される場合があります。

Deprecation Warning: @import is deprecated and will be removed in a future version.
Use @use instead.

これは Sass の @import 構文が非推奨になったためです。ビルドや動作には影響しませんが、将来のバージョンで削除されるため、@use への移行が推奨されます。

// Before
@import "@/styles/_single.scss";

// After
@use "@/styles/_single.scss";
📌 @use と @import の違い

@use はスコープが限定され、名前空間付きでアクセスします。@import からの移行では、変数やミックスインの参照方法が変わる場合があります。段階的に移行するのがおすすめです。

トラブルシューティング

npm install が失敗する

package-lock.json を削除して再インストールすると解決する場合があります。

rm package-lock.json
npm install

vue-tsc が古い TypeScript と互換性がない

vue-tsctypescript のバージョンの組み合わせに注意してください。vue-tsc 3.x は TypeScript 5.x 系に対応しています。

Vuetify のスタイルが崩れる

Vuetify 3.4 → 3.11 ではコンポーネントの CSS に変更が入っている場合があります。見た目に問題がないか画面を確認してください。

アップグレードチェックリスト

確認項目
  • package.json Vue、Vue Router、Vuetify のバージョンを更新
  • @types/node Vite 7.x 要件に合わせて ^22.12.0 以上に更新
  • TypeScript ~5.9.3 に更新
  • env.d.ts .vue モジュールの型宣言を追加
  • @vue/tsconfig ^0.8.1 に更新
  • ビルド npm run build が成功することを確認
  • 動作確認 画面表示・ルーティングに問題がないことを確認

参考文献

まとめ

Vue 3 プロジェクトのアップグレードでは、Vue 本体だけでなく周辺パッケージの互換性も確認が必要です。特に注意すべきポイントは以下の 3 点です。

  1. Vite 7.x は @types/node ^20.19.0 以上を要求する
  2. Vite 7.x では .vue モジュールの型宣言を env.d.ts に手動で追加する必要がある
  3. TypeScript のバージョンも合わせて更新しないと @vitejs/plugin-vue の型エラーが発生する

パッケージ間の依存関係を意識しながら、順番にエラーを解消していくのがスムーズなアップグレードのコツです。

CATEGORY
TAGS
円