问题描述
我想验证我的项目中的所有依赖项(package.json
和 yarn.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.json
和 yarn.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-run
的 npm
标志可以满足您在 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