Skip to content

原文(日本語に翻訳)

プラグインのインストールが、依存関係のバージョンがすでにインストールされているプラグインと競合する場合でも成功していた問題を修正しました。現在はrange-conflictが報告されます。

原文(英語)

Fixed plugin install succeeding when a dependency version conflicts with an already-installed plugin — now reports range-conflict

概要

新しいプラグインをインストールする際、その依存関係のバージョンが既にインストールされているプラグインの依存関係と競合する場合でも、インストールが成功したように見える問題がありました。この状態は後から予期しないエラーを引き起こす可能性がありました。今回の修正により、バージョン競合が検出された場合は即座に「range-conflict」エラーが報告されるようになります。

基本的な使い方

bash
# プラグインのインストール
claude plugin install my-plugin

# バージョン競合がある場合(修正後):
# Error: Plugin installation failed: range-conflict
#   my-plugin requires: some-dependency@^2.0.0
#   already-installed-plugin requires: some-dependency@^1.5.0
#   These version ranges are incompatible.

# 修正前:
# インストールが成功したように見えたが、後で実行時エラーが発生

実践例

バージョン競合のシナリオ

# 既にインストール済みのプラグイン:
# - plugin-A (some-lib@^1.5.0 に依存)

# 新しくインストールしようとするプラグイン:
# - plugin-B (some-lib@^2.0.0 に依存)

# some-lib の v1.x と v2.x は互換性なし

# 修正前:
# plugin-B のインストールが「成功」
# → 実際には some-lib のバージョンが競合状態
# → plugin-A または plugin-B が動作しない

# 修正後:
# インストール時に range-conflict エラーを報告
# Error: range-conflict: plugin-A requires some-lib@^1.5.0,
#        plugin-B requires some-lib@^2.0.0

エラーメッセージの読み方

# range-conflict エラーの例
Error: Plugin installation failed due to version range conflict

Conflict details:
  Package: some-dependency
  Required by plugin-B: ^2.0.0 (new plugin)
  Required by plugin-A: ^1.5.0 (installed)
  
Incompatible ranges:
  ^2.0.0 allows: 2.0.0, 2.1.0, 2.x.x ...
  ^1.5.0 allows: 1.5.0, 1.6.0, 1.x.x ...
  
These ranges have no common version.

Suggested actions:
  - Check if plugin-B has a version compatible with some-dependency@^1.5.0
  - Or remove plugin-A before installing plugin-B
  - Or check if plugin-A supports some-dependency@^2.0.0

競合の解決方法

bash
# 方法1: 競合するプラグインを先にアンインストール
claude plugin uninstall plugin-A
claude plugin install plugin-B

# 方法2: 互換性のあるバージョンを指定してインストール
claude plugin install plugin-B@1.x  # 古いバージョンを指定

# 方法3: インストール済みプラグインの一覧を確認
claude plugin list

# 方法4: 依存関係の詳細を確認
claude plugin info plugin-B

プラグイン管理のベストプラクティス

bash
# プラグインインストール前のチェック

# 1. インストール済みプラグインを確認
claude plugin list

# 2. 新しいプラグインの依存関係を確認
claude plugin info new-plugin --show-dependencies

# 3. 潜在的な競合を事前にチェック
claude plugin check new-plugin

# 4. 問題なければインストール
claude plugin install new-plugin

# 修正後: インストール時に競合が即座に検出されるため
# 後から予期しないエラーに悩まされることがなくなる

注意点

  • この修正はプラグインのインストール時の検証強化です
  • 既存のインストール済みプラグインには影響しません(既存の競合状態は検出されません)
  • range-conflictエラーが出た場合は、どちらのプラグインを優先するかを判断する必要があります
  • プラグインの開発者は、依存関係のバージョン指定を可能な限り広くすることで競合を減らせます
  • セマンティックバージョニング(^、~など)のバージョン範囲記法が競合検出に使用されます

関連情報