Skip to content

VJSP Vue3 Frame - 依存関係管理ドキュメント

概要

このドキュメントでは、VJSP Vue3フレームワークの依存パッケージ管理と設定メカニズムについて詳しく説明します。フレームワークは現代的な依存関係管理戦略を採用し、プロジェクトビルドの安定性と開発効率を確保します。

完全な依存関係リスト

本番依存関係 (dependencies)

依存関係名バージョンリポジトリアドレスオープンソースライセンス簡単な説明
@element-plus/icons-vue^2.3.2GitHubMITElement Plus アイコンライブラリ
@types/crypto-js^4.2.2GitHubMITCryptoJS 型定義
@vueuse/core^12.3.0GitHubMITVue コンポジションAPI ツールセット
@wangeditor/editor-for-vue^5.1.12GitHubMITVue リッチテキストエディタ
axios^1.12.0GitHubMITHTTP リクエストライブラリ
crypto-js^4.2.0GitHubMIT暗号化アルゴリズムライブラリ
dayjs^1.11.13GitHubMIT軽量な日付処理ライブラリ
echarts^5.6.0GitHubApache-2.0データ可視化ライブラリ
echarts-wordcloud^2.1.0GitHubBSD-3-ClauseECharts ワードクラウドプラグイン
element-plus^2.11.7GitHubMITVue 3 UI コンポーネントライブラリ
lodash-es^4.17.21GitHubMITJavaScript ユーティリティライブラリ
monaco-editor^0.52.2GitHubMITコードエディタ
nprogress^0.2.0GitHubMITページ読み込みプログレスバー
path-to-regexp^8.3.0GitHubMITパスマッチングライブラリ
pinia^3.0.0GitHubMITVue 状態管理ライブラリ
pinia-plugin-persistedstate^4.2.0GitHubMITPinia 状態永続化プラグイン
qs^6.13.1GitHubBSD-3-Clauseクエリ文字列解析ライブラリ
unplugin-auto-import^20.1.0GitHubMIT自動インポートプラグイン
unplugin-vue-components^29.0.0GitHubMITVue コンポーネント自動インポートプラグイン
vite-plugin-compression^0.5.1GitHubMITVite 圧縮プラグイン
vite-plugin-html^3.2.2GitHubMITVite HTML 処理プラグイン
vue3.5.13GitHubMITVue 3 コアフレームワーク
vue-i18n11.0.1GitHubMITVue 国際化ソリューション
vue-router^4.5.0GitHubMITVue 公式ルーティングマネージャー
vue-types^5.1.3GitHubMITVue コンポーネント Prop 型チェック

開発依存関係 (devDependencies)

依存関係名バージョンリポジトリアドレスオープンソースライセンス簡単な説明
@intlify/unplugin-vue-i18n^6.0.3GitHubMITVue I18n ビルドツール
@types/lodash-es^4.17.12GitHubMITLodash ES 型定義
@types/node^22.10.5GitHubMITNode.js 型定義
@types/nprogress^0.2.3GitHubMITNProgress 型定義
@types/path-browserify^1.0.3GitHubMITPath Browserify 型定義
@types/qs^6.9.17GitHubMITQS 型定義
@typescript-eslint/eslint-plugin^8.19.1GitHubMITTypeScript ESLint プラグイン
@typescript-eslint/parser^8.19.1GitHubMITTypeScript ESLint パーサー
@vitejs/plugin-vue^5.2.1GitHubMITVite Vue プラグイン
@vitejs/plugin-vue-jsx^4.1.1GitHubMITVite Vue JSX プラグイン
@vue/runtime-core^3.5.21GitHubMITVue ランタイムコア
@vue/tsconfig^0.8.1GitHubMITVue TypeScript 設定
autoprefixer^10.4.21GitHubMITCSS 自動プレフィックスツール
eslint^9.17.0GitHubMITJavaScript/TypeScript コードチェックツール
eslint-config-prettier^9.1.0GitHubMITESLint Prettier 設定
eslint-define-config^2.1.0GitHubMITESLint 設定定義ツール
eslint-plugin-prettier^5.2.1GitHubMITESLint Prettier プラグイン
eslint-plugin-vue^9.32.0GitHubMITVue ESLint プラグイン
less^4.2.1GitHubApache-2.0CSS プリプロセッサ
postcss^8.5.6GitHubMITCSS 処理ツール
prettier^3.4.2GitHubMITコードフォーマットツール
rimraf^6.0.1GitHubISCファイル削除ツール
rollup^4.30.1GitHubMITJavaScript モジュールバンドラー
rollup-plugin-visualizer^5.14.0GitHubMITRollup バンドル分析ツール
tailwindcss^3.4.17GitHubMITユーティリティファーストの CSS フレームワーク
typescript5.7.3GitHubApache-2.0TypeScript コンパイラ
typescript-eslint^8.19.1GitHubMITTypeScript ESLint ツールセット
vite6.0.7GitHubMIT次世代フロントエンドビルドツール
vite-plugin-ejs^1.7.0GitHubMITVite EJS テンプレートプラグイン
vite-plugin-eslint^1.8.1GitHubMITVite ESLint プラグイン
vite-plugin-progress^0.0.7GitHubMITVite ビルド進捗プラグイン
vite-plugin-purge-icons^0.10.0GitHubMITVite アイコンクリーンプラグイン
vite-plugin-style-import2.0.0GitHubMITVite スタイルインポートプラグイン
vite-plugin-svg-icons^2.0.1GitHubMITVite SVG アイコンブラグイン
vite-plugin-url-copy^1.1.4GitHubMITVite URL コピープラグイン
vite-plugin-vue-devtools^8.0.3GitHubMITVite Vue DevTools プラグイン
vue-tsc^2.2.0GitHubMITVue TypeScript コンパイラ

コア依存関係アーキテクチャ

1. フロントエンドフレームワーク層

  • Vue 3.5.13: コアフレームワーク、リアクティブシステムとコンポーネント化開発機能を提供
  • Vue Router 4.5.0: 公式ルーティング管理、動的ルーティングとルートガードをサポート
  • Pinia 3.0.0: 状態管理ライブラリ、型安全なStore管理を提供
  • Vue I18n 11.0.1: 国際化サポート、多言語アプリケーションを実現

2. UI コンポーネントライブラリ

  • Element Plus 2.11.7: エンタープライズ級UIコンポーネントライブラリ、豊富なコンポーネントとテーマカスタマイズを提供
  • Element Plus Icons: アイコンライブラリ、2000+の高品質アイコンを含む

3. ビルドツールチェーン

  • Vite 6.0.7: 次世代フロントエンドビルドツール、高速なコールドスタートとホットリロードを提供
  • TypeScript 5.7.3: 型安全なJavaScriptスーパーセット
  • Vue TSC: Vue単一ファイルコンポーネントのTypeScript型チェック

4. 開発ツール

  • ESLint 9.17.0: コード品質チェックツール
  • Prettier 3.4.2: コードフォーマットツール
  • Vue DevTools: Vueアプリケーションデバッグツール

依存関係設定メカニズム

1. パッケージ管理設定

プロジェクトはnpmをパッケージマネージャーとして使用し、package.jsonに詳細な依存関係バージョン範囲を定義:

json
{
  "engines": {
    "node": ">=18.0.0 <=22.99.99",
    "npm": ">=8.0.0"
  },
  "browserslist": {
    "production": ["> 1%", "last 2 versions", "not dead"],
    "development": ["last 1 chrome version", "last 1 firefox version", "last 1 safari version"]
  }
}

2. ビルドツール設定

Vite設定はプラグインアーキテクチャを採用し、機能モジュール化を実現:

  • 自動インポートプラグイン: Vue、Vue Router、Element Plusなどの常用APIを自動インポート
  • コンポーネント自動登録: src/componentsディレクトリ内のコンポーネントを自動スキャンして登録
  • 国際化プラグイン: Vue I18nの自動設定と型安全をサポート
  • SVGアイコン: SVGアイコンを自動処理、オンデマンドロードをサポート

3. 型チェック設定

TypeScript設定は厳格モードを採用し、コード品質を確保:

json
{
  "compilerOptions": {
    "target": "ES2022",
    "strict": true,
    "moduleResolution": "Node",
    "paths": { "@/*": ["src/*"] }
  }
}

依存関係分類説明

1. 本番依存関係 (dependencies)

コアフレームワーク

  • vue, vue-router, pinia: Vueエコシステムコアライブラリ
  • element-plus: UIコンポーネントライブラリ
  • axios: HTTPリクエストライブラリ
  • vue-i18n: 国際化サポート

機能強化

  • @vueuse/core: VueコンポジションAPIツールセット
  • lodash-es: ユーティリティ関数ライブラリ
  • dayjs: 日付処理ライブラリ
  • crypto-js: 暗号化ツールライブラリ

エディタと可視化

  • monaco-editor: コードエディタ
  • echarts: チャート可視化ライブラリ
  • @wangeditor/editor-for-vue: リッチテキストエディタ

2. 開発依存関係 (devDependencies)

ビルドツール

  • vite 及び関連プラグイン: ビルドツールチェーン
  • @vitejs/plugin-vue: Vue単一ファイルコンポーネントサポート
  • vue-tsc: Vue型チェック

コード品質

  • eslint 及び関連プラグイン: コードチェック
  • prettier: コードフォーマット
  • typescript: TypeScriptコンパイラ

スタイル処理

  • less: CSSプリプロセッサ
  • tailwindcss: ユーティリティファーストのCSSフレームワーク
  • autoprefixer: CSS自動プレフィックス

Product モジュール開発例

1. 依存関係インポート設定

Productモジュール開発では、依存関係を適切に設定する必要があります:

typescript
// product/services/productApi.ts
import { axios } from 'axios'
import { ElMessage } from 'element-plus'
import { dayjs } from 'dayjs'

// 製品APIサービスカプセル化
export class ProductApiService {
  // APIインターフェース定義と実装
}

2. コンポーネント依存関係管理

Productコンポーネントは依存関係を正しく宣言する必要があります:

vue
<!-- product/components/ProductList.vue -->
<template>
  <el-table :data="productList">
    <el-table-column prop="name" label="製品名" />
    <el-table-column prop="price" label="価格" />
  </el-table>
</template>

<script setup lang="ts">
import { ref, onMounted } from 'vue'
import { ElTable, ElTableColumn } from 'element-plus'
import { useProductStore } from '@/stores/product'

const productStore = useProductStore()
const productList = ref([])

onMounted(async () => {
  productList.value = await productStore.fetchProducts()
})
</script>

3. 型定義依存関係

Productモジュールの型定義:

typescript
// product/types/product.ts
export interface Product {
  id: number
  name: string
  price: number
  description: string
  createdAt: string
}

export interface ProductFilters {
  category?: string
  priceRange?: [number, number]
  search?: string
}

パフォーマンス最適化実践

1. 依存関係オンデマンドロード

Viteの自動インポートとコンポーネント自動登録を通じて、依存関係のオンデマンドロードを実現:

typescript
// vite.config.ts の自動インポート設定
AutoImport({
  imports: [
    'vue',
    'vue-router',
    {
      from: 'element-plus',
      imports: ['ElMessage', 'ElMessageBox', 'ElNotification'],
    },
  ],
})

2. ビルド最適化

  • コード分割: vendorパッケージとビジネスコードを自動分割
  • Tree Shaking: 未使用コードを自動削除
  • Gzip圧縮: 本番環境で自動的に圧縮を有効化

3. キャッシュ戦略

  • ブラウザキャッシュ: 適切なキャッシュ戦略を設定
  • CDN加速: 静的リソースCDNデプロイをサポート
  • 依存関係事前ビルド: Viteの依存関係事前ビルドメカニズム

ベストプラクティスガイド

1. 依存関係バージョン管理

  • 正確なバージョン番号を使用し、自動アップグレードによる非互換問題を回避
  • 定期的に依存関係を更新し、セキュリティ脆弱性を修正
  • npm auditを使用してセキュリティ脆弱性をチェック

2. 依存関係インポート基準

  • フレームワークが提供するツール関数を優先使用
  • 機能が類似するライブラリの重複インポートを回避
  • サードパーティライブラリを適切に使用し、過度な依存を避ける

3. ビルド設定最適化

  • プロジェクト規模に応じてビルド設定を調整
  • externalsを適切に設定し、バンドルサイズを削減
  • 分析ツールを使用してビルドパフォーマンスを監視

4. 開発環境設定

  • 適切な開発サーバーオプションを設定
  • ホットリロードとソースマップを有効化
  • プロキシを設定してクロスドメイン問題を解決

トラブルシューティング

1. 依存関係競合解決

依存関係競合が発生した場合:

  1. package-lock.json内の依存関係ツリーを確認
  2. npm ls <package-name>を使用して依存関係を表示
  3. npm dedupeを使用して依存関係ツリーを最適化

2. ビルドエラー処理

一般的なビルドエラーと解決策:

  • 型エラー: TypeScript設定と型定義を確認
  • モジュールが見つからない: パスエイリアスとモジュール解決設定を確認
  • メモリ不足: Node.jsメモリ制限を調整

3. パフォーマンス問題調査

以下のツールを使用してパフォーマンス分析:

  • vite-bundle-analyzer: バンドルサイズ分析
  • webpack-bundle-analyzer: 可視化依存関係分析
  • Chrome DevTools: ランタイムパフォーマンス分析

適切な依存関係管理と設定最適化を通じて、VJSP Vue3フレームワークは安定した効率的な開発体験を提供し、大規模プロジェクトの迅速な反復とメンテナンスをサポートします。