8

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

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

yarn check --integrity --verify-tree

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

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

纱线安装--检查文件

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

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

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

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

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

4

2 回答 2

1

yarn cli中有几个选项可能使您能够实现您想要做的事情。

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

据我了解,检查您提到的文件的选项并不是您的案例本身所需要的,因为您不想检查node_modules-folder 而package.json不是yarn.lock.

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

最好的祝愿,希望对您有所帮助

于 2021-01-30T12:42:39.420 回答
1

您提到--dry-runfor 的标志npm可以满足您的需求yarn从 开始npm@7.0.0npmyarn.lock如果文件存在(并且不存在),则解析并使用package-lock.json它们。

因此,您可以使用npm--dry-run选项,它应该与yarn.lock文件一起使用。

确保您正在使用npm 7.0.0或更高版本。更新:npm install -g npm

于 2021-02-01T14:38:46.247 回答