最初に結論だけ
各種 yarn
コマンド実行時にキャッシュ置き場を指定。ライブラリの変更を反映したいときは rm -rf
で直接そのディレクトリを削除してやる
# addやremoveのときに --cache-folderを指定しておく
yarn add --cache-folder ./ycache -D path/to/some-library/some-library.tgz
yarn remove --cache-folder ./ycache some-library
# 再度インストールしたいときは指定したキャッシュ置き場を消して、再度--cache-folderを指定して実行
rm -rf ./ycache
yarn add --cache-folder ./ycache -D path/to/some-library/some-library.tgz
起こった事象
- ライブラリのディレクトリで
yarn pack
を実行してtgzファイルを作成 - 試す側のディレクトリで
yarn add path/to/library/library.tgz
- yarnのキャッシュによって古いものがインストールされる
-
yarn cache list --pattern library
で確認するとたしかにキャッシュがあるので、yarn cache clean library
でキャッシュを削除 - 改めて
yarn cache list
で確認すると出てこないので消えてそう - 今一度
yarn add path/to/library/library.tgz
- 何故か古いのがインストールされる
キャッシュ置き場指定以外に試したこと
yarn cache dir
でキャッシュを保存してるディレクトリが取れるので、そこから該当ライブラリのキャッシュを直接指定して消したりはしたけどダメだった
tgz
ファイルを消しても yarn add
が成功するのでキャッシュに引っかかってるのは間違いないんだけど・・・