1. ホーム
  2. node.js

[解決済み] Yarn にパッケージを強制的に再インストールさせるにはどうしたらいいですか?

2022-02-01 12:53:31

質問

私のプロジェクトには、パッケージサーバーから取得することもあれば、私のマシンにあるローカルコピーから取得することもある依存関係があります。その結果、私は頻繁に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 linknpm link <dependency> は事実上同じように動作します。依存関係を解除するには npm rm --global <dependency> . (これは npm link はグローバルな NPM パッケージ群にシムリンクを作成することで動作するので、グローバルパッケージからリンクされた依存関係をアンインストールすると、リンクも解除されます)。

参照 その npm link ドキュメント npm linkを使ってインストールしたパッケージをアンインストールするにはどうしたらいいですか?