dependabot 只更新锁文件
Posted
技术标签:
【中文标题】dependabot 只更新锁文件【英文标题】:dependabot only updates lock file 【发布时间】:2020-05-28 18:57:57 【问题描述】:我们最近从 greenkeeper
切换到 dependabot
以进行依赖项检查,我们注意到 dependabot
正在打开 PR,仅更改 package-lock.json
保持 package.json
不变。
另一方面,greenkeeper
正在提交对两个文件的更改。
发生了什么事?这是正常的还是我们错过了设置中的某些内容?
【问题讨论】:
嘿@Johnny,你有没有找到合适的解决方案? @flaky 是的。在dependabot 配置文件中有一个配置设置,它也强制将所有更新写入package.json。您应该仔细阅读 GitHub 的dependabot 文档。我可能会写一个关于它的答案,以更好地解释该怎么做。 我想要一个很好的解释 :)dependabot 文档有时会受到打击和错过 :) @flaky,检查我自己的答案。 【参考方案1】:这是一个很晚的回复。我们已经在生产中工作了很长时间,但我看到仍然有兴趣促使我认为人们可能需要一些帮助。所以,这里是:
当使用 GitHub 依赖机器人时(不是 dependabot-preview
,虽然 conf 文件实际上可能是一样的):
.github
目录中创建一个 dependabot.yml
文件。
指定increase
中的versioning-strategy。
它看起来像这样(例如npm
):
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
# Always increase the version requirement
# to match the new version.
versioning-strategy: increase
就是这样。现在,package.json
和 package-lock.json
都被写入并增加了版本。
【讨论】:
【参考方案2】:文件 package-lock.json 的目标是跟踪已安装的每个包的确切版本,以便产品以相同的方式 100% 可重现,即使包是由他们的维护者更新。 reference link is here
所以 package.json 和 package-lock.json 有不同的用途。
dependabot 尝试仅推送修改后的 package-lock.json 没有错误。
【讨论】:
他没有询问.lock
和清单文件之间的区别的解释......【参考方案3】:
类似的事情发生在我身上,可能是两件事:
-
在dependendabot 配置中,您只需接受package-lock.json 的更新
(这是对我有用的)在 package.json 中的键
Name
中,在我的情况下,您可能用不正确的符号编写了 web-app
符号 -
导致我没有更新它现在我将其命名为webapp
。
【讨论】:
让我理解一下,npm 上可能 99% 的包的名称中都有一个“-”号。如果这是问题所在,那么这是dependabot 中的一个大错误(可能已经发现)。 不是那个,我说的是package.json中的项目名称例如:` "name": "ProjectN", => 这就是我说的. “version”:“1.0.0”,“description”:“Web App”,“main”:“index.js”`这将是错误的方式"name" : "Project-N"
以上是关于dependabot 只更新锁文件的主要内容,如果未能解决你的问题,请参考以下文章