yarn - 快速检查 `package.json` 和 `yarn.lock` 要求是不是满足的正确方法?
Posted
技术标签:
【中文标题】yarn - 快速检查 `package.json` 和 `yarn.lock` 要求是不是满足的正确方法?【英文标题】:yarn - Proper way to quickly check if `package.json` and `yarn.lock` requirements are satisfied?yarn - 快速检查 `package.json` 和 `yarn.lock` 要求是否满足的正确方法? 【发布时间】:2021-04-28 05:35:43 【问题描述】:我想验证是否满足我项目中的所有依赖项(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
让它看起来好像做了一些完全不同的事情。
yarn install --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
中似乎不存在该标志。
【问题讨论】:
【参考方案1】:您提到npm
的--dry-run
标志可以满足您在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
【讨论】:
【参考方案2】:yarn cli 中有几个选项可能使您能够实现您想做的事情。
我最好的猜测是使用offline mode 来停止您要求的任何外部请求。 frozen lockfile 还为您提供了在依赖项彼此不同步的情况下出错的选项。
据我了解,您提到的check files 选项本身并不是您的情况所需要的,因为您不想检查node_modules
-文件夹而不是package.json
和@987654328 @。
那么yarn install --offline --frozen-lockfile
呢?
祝好,希望对你有所帮助
【讨论】:
非常感谢!--offline
功能在该文档中没有太多解释,但更好地解释 here。但是,它看起来像维护一个单独的缓存文件夹。这并不理想,我认为仍然有一种更简单的方法来检查安装。但这是一件值得调查的好事情。以上是关于yarn - 快速检查 `package.json` 和 `yarn.lock` 要求是不是满足的正确方法?的主要内容,如果未能解决你的问题,请参考以下文章
如何将`yarn.lock`与`package.json`同步?
package.json、package-lock.json 和 yarn.lock 文件的区别?
关于package.json package-lock.json 和 yarn.lock 的安装问题
关于package.json package-lock.json 和 yarn.lock 的安装问题