【问题标题】:dependabot only updates lock filedependabot 只更新锁文件
【发布时间】: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,检查我自己的答案。

标签: github package.json package-lock.json greenkeeper dependabot


【解决方案1】:

这是一个很晚的回复。我们已经在生产中工作了很长时间,但我看到仍然有兴趣促使我认为人们可能需要一些帮助。所以,这里是:

当使用 GitHub 依赖机器人时(不是 dependabot-preview,虽然 conf 文件实际上可能是一样的):

它看起来像这样(例如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.jsonpackage-lock.json 都被写入并增加了版本。

【讨论】:

    【解决方案2】:

    文件 package-lock.json 的目标是跟踪已安装的每个包的确切版本,以便产品以相同的方式 100% 可重现,即使包是由他们的维护者更新。 reference link is here

    所以 package.json 和 package-lock.json 有不同的用途。

    dependabot 尝试仅推送修改后的 package-lock.json 没有错误。

    【讨论】:

    • 他没有询问.lock和清单文件之间的区别的解释......
    【解决方案3】:

    类似的事情发生在我身上,可能是两件事:

    1. 在dependendabot 配置中,您只需接受package-lock.json 的更新
    2. (这是对我有用的)在 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"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多