Yarn 把离线包存放在哪里?

Where is Yarn storing offline packages?

我正在尝试安装此存储库的所有依赖项: https://github.com/react-community/react-navigation

问题是 Yarn 似乎将离线包存储在缓存目录以外的其他地方,并且它很快 运行 超出了我的系统驱动器中的 space。我清理了缓存 (yarn cache clean) 并删除了模块文件夹 (node_modules/),然后 运行 yarn 果然它在不到 5 分钟的时间内安装了大约 4GB 的依赖项 (互联网连接速度为 2 MBits)

附带说明一下,我想知道是否有办法在 yarnnpm 中禁用缓存。

正如https://github.com/yarnpkg/yarn/issues/2049所说,它们存储在这个位置:

%LOCALAPPDATA%/Yarn/config/global on Windows  
~/.config/yarn/global on OSX and non-root Linux
/usr/local/share/.config/yarn/global on Linux if logged in as root

而且我认为禁用缓存目前是 yarn 的一个开放主题:https://github.com/yarnpkg/rfcs/pull/53

您可以 运行 yarn cache dir 列出您系统上的缓存位置。

对于它的价值,所有具有默认纱线版本和缓存位置的节点版本:-

❯ for i in boron carbon dubnium erbium fermium; \
       docker run -it node:$i bash -c "yarn --version && yarn cache dir"
1.15.2
/usr/local/share/.cache/yarn/v4
1.21.1
/usr/local/share/.cache/yarn/v6
1.22.4
/usr/local/share/.cache/yarn/v6
1.22.4
/usr/local/share/.cache/yarn/v6
1.22.5
/usr/local/share/.cache/yarn/v6

Gavin Gilmour 的精彩回答的更新和扩展版本:

作为根用户

boron
1.15.2
/usr/local/share/.cache/yarn/v4
carbon
1.21.1
/usr/local/share/.cache/yarn/v6
dubnium
1.22.5
/usr/local/share/.cache/yarn/v6
erbium
1.22.17
/usr/local/share/.cache/yarn/v6
fermium
1.22.15
/usr/local/share/.cache/yarn/v6
gallium
1.22.15
/usr/local/share/.cache/yarn/v6

作为用户

在 CLI 中使用 --user node 或在无根容器的 Dockerfile 中使用 USER node 时:

boron
1.15.2
/home/node/.cache/yarn/v4
carbon
1.21.1
/home/node/.cache/yarn/v6
dubnium
1.22.5
/home/node/.cache/yarn/v6
erbium
1.22.17
/home/node/.cache/yarn/v6
fermium
1.22.15
/home/node/.cache/yarn/v6
gallium
1.22.15
/home/node/.cache/yarn/v6

不确定为什么 yarn 在后两个版本中倒退,但我也用这些版本的其他标签验证了它。