如何将`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 同步回 package.json 并锁定
Yarn:将 JavaScript 依赖项重新部署到生产服务器的过程(使用 `yarn.lock` 文件)