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

问题描述

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

起初,我非常希望 yarn check 做到了这一点。以下命令验证 package.json 中的每个依赖项都得到满足,并且 验证安装的软件包是否与 yarn.lock 文件匹配。

yarn check --integrity --verify-tree

但是,the documentation 表示这从 yarn v2 开始已被弃用,应该使用 yarn install --check-files 代替。

但是 the documentation for --check-files 让它看起来完全不同。

纱线安装 --check-files

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

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

此外,pull request that removed yarn check 还提到 --check-files 的行为并不完全直观。

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

FWIW、a similar question was asked for npm解决方案是使用 --dry-run 标志,但该标志似乎不存在于 yarn

解决方法

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

我最好的猜测是使用 offline mode 来停止您要求的任何外部请求。 frozen lockfile 还为您提供了在依赖项彼此不同步的情况下出错的选项。

据我所知,您提到的 check files 选项本身并不是您的情况所必需的,因为您不想检查 node_modules 文件夹而不是 {{1 }} 和 package.json

那么yarn.lock怎么样?

祝好,希望能帮到你

,

您提到 --dry-runnpm 标志可以满足您在 yarn 中的要求。 Starting with npm@7.0.0,npm parses and uses yarn.lock files 如果它们存在(并且没有 package-lock.json)。

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...