LoginSignup
0
0

More than 3 years have passed since last update.

ローカル環境においてあるnpmライブラリをyarnでインストールして試すときにキャッシュでハマった

Last updated at Posted at 2020-03-20

最初に結論だけ

各種 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 が成功するのでキャッシュに引っかかってるのは間違いないんだけど・・・

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0