依存関係管理は、すでに現代のフロントエンド プロジェクト開発の不可欠な部分であり、歴史的な理由、プロジェクト メンテナンスの欠如などのさまざまな問題により、フロントエンド プロジェクトは依存関係管理において多くの問題に遭遇します。この記事では、そのうちの 1 つnpm install
、ERESOLVE unable to resolve dependency tree
エラーの理由、およびその解決方法について説明します。
エラーメッセージ
[email protected]
をインストールしたプロジェクトに依存関係をインストールするとali-react-table
、次のエラーが発生します。エラーの原因を注意深く読むと、ali-react-table
での使用peerDependencies
が依存react@"^16.8.0 || ^17.0.1"
プロジェクトを定義しており、これがプロジェクトのReact
バージョンわかります。これは、メンテナンスをali-react-table
怠り、サードパーティの依存関係に対する私たちの管理は比較的低い. サードパーティの依存関係の更新を待つか、PR
マージされたリリースを言及して待つことに加えて、いくつかのその他の方法 この問題は一時的に解決できます。
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: [email protected]
npm ERR! Found: [email protected]
npm ERR! node_modules/react
npm ERR! react@"^18.2.0" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer react@"^16.8.0 || ^17.0.1" from [email protected]
npm ERR! node_modules/ali-react-table
npm ERR! ali-react-table@"*" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
オプション 1: ダウングレード
依存関係ルールの検証はnpm@7
の後に。エラーを報告することなく、検証をダウングレードまたはNode.js
バイパスできます。npm
nvm use 14.17.4
## or
npm i -g npm@6
オプション 2: -f または --legacy-peer-deps
実際、メンテナンスを怠ったため、依存バージョン情報の更新が間に合わなかったali-react-table
ことが。実際のテストと私たちのプロジェクトの[email protected]
テストは問題なく実行できます。その後、インストール時に--force
パラメーター (省略形-f
) を使用して、インストールをnpm
強制するようできます。
npm install -f
別のパラメーターは、--legacy-peer-deps
ダウングレードせnpm
ずにnpm install
古いバージョンの動作を作成できることです。ドキュメントを参照してください。ただし、このパラメーターの実際の効果はプロジェクトによって異なる場合があるため、自分でテストする必要があります。
npm install --legacy-peer-deps
オプション3:またはyarn
resolutions
npm
overrides
実際のプロジェクトでは、ali-react-table
依存この問題を抱えている依存関係が多数存在する場合もあります。サードパーティのパッケージで指定された依存関係のバージョンを指定してオーバーライドするために使用できますresolutions
( use のみを使用yarn
できます。ドキュメントを参照してください) またはoverrides
(npm@8
上記を使用できます。ドキュメントを参照してください)。このパラメーターは、必要なサードパーティの依存関係のメンテナンスが不足している、指定されたバージョンが問題のあるバージョンであるなど、他のシナリオでも非常に効果的です。
{"name": "project","version": "1.0.0","dependencies": {},"resolutions": {"react": "^18.2.0"}
}
{"overrides": {"react": "^18.2.0"}
}
要約する
依存関係の管理は現在、フロントエンド開発の重要な部分です. サードパーティの依存関係のバージョンの更新に注意を払い、メジャー バージョンの更新が自分のプロジェクトBreaking Change
とプロジェクトの開発と運用に影響を与える依存バージョンの問題を回避します。エラーが発生した場合は、エラーの説明を読んでエラーの根本原因を突き止め、適切な薬を処方して適切な解決策を見つける必要があります。
やっと
最近では、JavaScript と ES のノート、合計 25 の重要な知識ポイントも整理し、各知識ポイントの説明と分析を行いました。JavaScript と ES の関連知識をすばやく習得し、作業効率を向上させるのに役立ちます。
困っている友達は、下のカードをクリックして無料で受け取り、共有できます