[解決済み] yarnでパッケージをインストールするときの「has unmet peer dependency」の意味は?
質問
私は、新しくインストールした
yarn
(経由
npm install yarn -g
) を使っていくつかのパッケージをインストールしようとしました。
yarn add vue-loader babel-loader style-loader css-loader file-loader webpack。
その後、インストール中に以下のような警告がいくつか表示されました。
警告 "[email protected]" has unmet peer dependency "vue-template-compiler@^2.0.0".
A
姉妹質問
(約
npm
について)同じテーマで、いくつかの回答が得られました。
-
更新
npm
-
削除
node_modules
にはバグがあるためnpm
にバグがあるためです。
警告にあるパッケージを破棄することができないのは
webpack
のビルドに失敗し、手動でインストールしなければならなくなりました。同時に、かなりの数の依存関係がインストールされたので、これらがなぜインストールされなかったのか理解できません。
上記の警告は何を意味するのでしょうか、また、なぜ
yarn
はこれらの依存関係を自分自身でインストールしないのでしょうか?
どのように解決するのですか?
ピア依存とは
ここで は依存性のタイプに関するいくつかの有用な読み物です。 はこちら はピア依存に関する情報ですが、要約します。
依存関係
: プロジェクトが動作するために必要なライブラリ/パッケージです。
ピア依存
: プロジェクトがフックするライブラリ/パッケージを示すために使用します。
パッケージは
vue-loader
には同位体の依存関係があります。
vue-template-compiler
-
vue-loader
のプラグインとして動作します。
vue-template-compiler
なぜピア依存関係はデフォルトでインストールされないのですか?
ピア依存関係は、以前は自動的にインストールされていました。 npm@3 (これは yarn が追随しています) までは、ピア依存は自動的にインストールされていました。これは頻繁に混乱を招く動作のため、停止されました。例えば、競合する要件を持つ別のプラグインをインストールすると、エラーになります。
npm@3では、peerDependenciesの動作も変更する予定です。peerDependenciesを自動的にダウンロードすることはもうありません。その代わりに、ピア依存関係がまだインストールされていない場合に警告を表示します。これにより、peerDependencyの競合を自分で手動で解決する必要がありますが、長い目で見れば、パッケージの依存関係で厄介な場所に行き着く可能性は低くなるはずです。[2015 年 2 月 13 日] を参照してください。
アップデート
以下の通りです。
ここで
npm@7 はピア依存をインストールするようになりました。
この決定の背景には、以下を参照してください。
を参照してください。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン