如何将`yarn.lock`与`package.json`同步?

Posted

技术标签:

【中文标题】如何将`yarn.lock`与`package.json`同步?【英文标题】:How to sync `yarn.lock` with `package.json`? 【发布时间】:2017-04-28 19:35:15 【问题描述】:

我使用yarn add --dev 安装了一个包,运行它的设置过程,在此过程中,该包安装了几个其他包并将它们添加到package.json(在devDependencies),我假设使用 npm。很好,但现在我的 yarn.lock 不同步了。

yarn.lock 同步到package.json 的当前状态的正确非手动方式是什么?

编辑:yarn check 将丢失的包显示为:

error Lockfile does not contain pattern: <package>@<version>

但它没有添加它们。

【问题讨论】:

您安装的哪个模块对您的package.json 进行了更改?对我来说,这似乎是一种很糟糕的形式。 @sdgluck 包是eslint,安装过程是eslint --init @sdgluck 你会重新发布你的答案吗?我不知道你(或其他人)为什么删除它。 yarn install 确实有效(不是我认为的最直观的工作流程) 嘿,考虑使用我在这个答案中制作的工具:***.com/questions/46904544/… 就像一个魅力! 【参考方案1】:

运行yarn install,或直接运行yarn

锁定文件会在依赖项发生任何更改时全部更新,即当您运行 yarn 命令时。

来自Yarn docs:

您的 yarn.lock 文件是自动生成的,应该完全由 Yarn 处理。 当您使用 Yarn CLI 添加/升级​​/删除依赖项时,它会自动更新您的 yarn.lock 文件。不要直接编辑此文件,因为它很容易破坏。

(强调我自己的)

【讨论】:

先删除的目的是什么?如果没有,我可能会遇到什么样的问题? 不需要删除文件。【参考方案2】:

如果您遇到校验和问题,这将解决它,

YARN_CHECKSUM_BEHAVIOR=update yarn

【讨论】:

以上是关于如何将`yarn.lock`与`package.json`同步?的主要内容,如果未能解决你的问题,请参考以下文章

如何让 Heroku 识别子目录(不是根目录)中的 yarn.lock 或 package.json

如何解决 yarn.lock 中的 git 冲突

将 yarn.lock 同步回 package.json 并锁定

Yarn:将 JavaScript 依赖项重新部署到生产服务器的过程(使用 `yarn.lock` 文件)

yarn 安装了 2 个版本的 jquery。为啥,除了直接编辑 yarn.lock 之外,我该如何修复它?

在 docker 容器内安装依赖项后如何复制回主机 package-lock.json/yarn.lock?