返回 解决方法:使用
Yarn Classic 版本查找指南:如何准确获知已安装包版本?
javascript
2024-03-14 10:56:58
使用 Yarn Classic 准确查找已安装包版本:权威指南
作为一名经验丰富的程序员,我经常使用 Yarn 来管理我的项目依赖项。在最近的一次项目中,我遇到了一个令人困惑的问题:已安装包的版本似乎发生了变化,即使我没有运行任何更新命令。这让我想知道:如何使用 Yarn Classic 准确地查找已安装包的版本?
问题概述:Yarn Lock 文件的迷思
Yarn Classic 使用一个名为 yarn.lock
的文件来记录已安装包的版本。然而,我发现即使只更新 package.json
文件中的依赖项版本,但不运行 install
或 upgrade
命令,yarn.lock
文件中的版本仍然保持不变。这导致 node_modules
文件夹中安装的包版本更新,而 yarn.lock
文件却显示旧版本。
解决方法:使用 yarn install --immutable
为了解决这个问题,我发现了 yarn install --immutable
命令。该命令强制 Yarn Classic 仅安装 yarn.lock
文件中指定的版本,覆盖任何已更新的版本。
步骤详解:
- 检查
yarn.lock
文件: 确认yarn.lock
文件中记录的版本。 - 运行
yarn install --immutable
: 强制 Yarn Classic 安装yarn.lock
文件中的版本。 - 检查
node_modules
文件夹: 验证已安装正确的包版本。 - 检查依赖项树(可选): 使用
yarn why
命令检查依赖项树,了解特定版本的安装原因。
示例:
以下示例演示如何使用 yarn install --immutable
:
# 查看 yarn.lock 文件
cat yarn.lock
# 更新 package.json 文件中的依赖项版本(不运行 install 或 upgrade)
# 再次查看 yarn.lock 文件
cat yarn.lock
# 运行 yarn install --immutable
yarn install --immutable
# 检查 node_modules 文件夹
ls node_modules/@babel/core
# 检查依赖项树(可选)
yarn why @babel/core
结论:
通过遵循这些步骤,你可以使用 Yarn Classic 准确地查找已安装包的版本。这有助于避免混淆并确保你的项目使用正确的依赖项版本。
常见问题解答:
- 为什么
yarn.lock
文件有时会出现旧版本? Yarn Classic 可能会在依赖项更新时自动更新yarn.lock
文件。 yarn install --immutable
命令会影响所有依赖项吗? 否,它只影响已更新的依赖项。yarn why
命令有什么用? 它显示依赖项安装位置以及为什么使用特定版本。- 是否推荐使用 Yarn Classic? Yarn Classic 不再积极维护,建议升级到 Yarn 最新版本。
- 如何防止依赖项自动更新? 在
package.json
文件中设置resolutions
字段。