私のプロジェクトには依存関係があり、パッケージサーバーから取得したり、マシン上のローカルコピーから取得したりすることがあります。その結果、依存関係を探すYarnスイッチを頻繁に使用する必要があります。さらに、依存関係のローカルコピーを頻繁に変更するため、その変更をメインプロジェクトに反映させる必要があります。その結果、Yarnに依存関係の同じ場所を引き続き見るように指示する方法が必要ですが、バージョン番号が変更されていない場合でも、依存関係を再インストールし、キャッシュをスキップして現在のソースから直接取得します。 (時々、依存関係の小さな変更を試してみて、毎回バージョン番号を更新するとすぐに迷惑になります。)
どうすればいいですか?
私は以下を試しましたが、どれも機能しません:
yarn remove dependency
yarn add file:/dependency
依存関係の以前のバージョンを引き続き使用します。
yarn remove dependency
yarn cache clear
yarn add file:/dependency
yarn install --force
また、依存関係の以前のバージョンを引き続き使用します。
yarn remove dependency
rm -rf node_modules/
yarn cache clear
yarn add file:/dependency
yarn install --force
以前のバージョンの依存関係を引き続き使用します。
Yarnが依存関係の最新バージョンを使用していることを確認するにはどうすればよいですか?
yarn link
コマンド を使用できます。これにより、ローカルの依存関係が設定されるため、依存関係を変更するたびに、それを更新するために他に何もすることなく、すぐにメインプロジェクトに表示されます。
メインプロジェクトが~/programming/main
にあり、依存関係が~/programming/dependency
にあり、名前がMyLocalDependency
である場合、以下を実行する必要があります。
1)依存関係内からyarn link
(追加フラグなし)を実行します。
cd ~/programming/dependency
yarn link
2)メインプロジェクト内からyarn link <name of dependency package>
を実行します。
cd ~/programming/main
yarn link MyLocalDependency
これで完了です!
依存関係のローカルコピーから他の場所でホストされているコピーに切り替える場合は、 yarn unlink
を使用できます。
cd ~/programming/main
yarn unlink MyLocalDependency
cd ~/programming/dependency
yarn unlink
Yarnの代わりにNPMを使用している場合、npm link
とnpm link <dependency>
は事実上同じように機能します。依存関係のリンクを解除するには、npm rm --global <dependency>
を実行します。 (これはnpm link
がグローバルNPMパッケージセットにsimlinkを作成することで機能するため、グローバルパッケージからリンクされた依存関係をアンインストールするとリンクが切断されるためです。)
npm link
のドキュメント および npmリンクを使用してインストールされたパッケージをアンインストールする方法 を参照してください
ノードモジュールを削除した後にパッケージを再インストールすると、次のように機能します。
yarn install --check-files
もう1つの方法があります。 yarn upgrade package-name
を使用するだけです
マニュアルを参照してください: https://yarnpkg.com/lang/en/docs/cli/upgrade/
Kevin self-answered のように、yarn link
は適切なオプションです。
しかし、リンクしているパッケージにpeer依存関係がある場合、いくつかの問題を引き起こす可能性があります。
カール・アドラーが言った も行く方法です:
yarn --check-files
ただし、これにより、変更されたすべてのパッケージが再インストールされます(サブコマンドなしのyarn
はyarn install
と同じです)。
したがって、本当に1つのパッケージを再インストールするだけの場合:
yarn add package-name --force