yarn - 快速检查是否满足 `package.json` 和 `yarn.lock` 要求的正确方法?

use*_*003 7 npm yarnpkg yarn-lock.json yarnpkg-v2

我想验证我的项目(package.jsonyarn.lock)中的所有依赖项是否都得到满足而无需运行yarn install(构建整个依赖项树并发出网络请求)

起初,我非常希望这样yarn check做。以下命令验证是否满足每个依赖项,package.json 验证已安装的包是否与yarn.lock文件匹配。

yarn check --integrity --verify-tree
Run Code Online (Sandbox Code Playgroud)

但是,文档说从 yarn v2 开始不推荐使用它,而yarn install --check-files应该使用它。

但是文档--check-files使它看起来像是做了一些完全不同的事情。

纱线安装 --check-files

验证 node_modules 中已安装的文件没有被删除。

我还可以验证运行它本质上是运行一个完整的yarn install命令,所以它在这里没有用。

此外,删除yarn check拉取请求还提到了 的行为--check-files并不完全直观。

那么在 yarn v2 及更高版本中运行此检查的支持方式是什么?有没有什么办法可以进行轻量级检查package.jsonyarn.lock而不必像yarn install那样通过网络构建整个依赖树?

FWIW,提出了一个类似的问题npm,解决方案是使用该--dry-run标志,但该标志似乎不存在于yarn.

小智 1

纱线 cli中有几个选项,它们可能使您能够实现您想要做的事情。

我最好的猜测是使用离线模式来停止您要求的任何外部请求。冻结的锁定文件还为您提供了在依赖项彼此不同步的情况下出错的选项。

据我了解,检查您提到的文件的选项对于您的情况来说并不是本质上需要的,因为您不想检查 -foldernode_modules而不是package.jsonyarn.lock

那么怎么样呢yarn install --offline --frozen-lockfile

最美好的祝愿,希望有帮助