【问题标题】:How to modify package.json dependencies without installation如何在不安装的情况下修改 package.json 依赖项
【发布时间】:2021-09-21 11:56:57
【问题描述】:

我有一个生成一些包的自动脚本,其中一个包使用其他生成的包作为依赖项。因此,例如,如果我有包 A、B 和 C,C 的 package.json 将如下所示:

{
  "name": "C",
  "version": "0.0.1",
  "dependencies": {
    "A": "0.0.1",
    "B": "0.0.1"
  }
}

我想这样做,以便每当我构建包时(我总是构建所有包并更改它们的版本)C 的 package.json 会自动更新,但无需任何安装或检查包是否存在于注册表中(它们是没有立即发布,我无法改变它,所以它们可能还不存在)。 在这种情况下,如果我将包更新到 0.0.2 版本,那么 C 的 package.json 需要变为:

{
  "name": "C",
  "version": "0.0.2",
  "dependencies": {
    "A": "0.0.2",
    "B": "0.0.2"
  }
}

我已经知道如何更改一个包自己的版本,我不知道如何更新它的依赖关系。
另一件值得一提的是,我有时可能需要使用其他版本,所以它并不总是升级(例如,最新版本目前是 0.2.0,但我需要构建 0.1.5,所以我不能只使用一些东西这会将依赖项更新到最新版本)

我尝试在互联网上查找,我发现了一些东西(例如这个问题:NPM - Add to package.json but don't install)但他们仍然检查包是否存在然后给我错误。

【问题讨论】:

    标签: npm version


    【解决方案1】:

    最后我意识到我不需要一个“更新”依赖项的工具,而是一个编辑 package.json 的工具,所以我结束了使用这个库 https://github.com/zeke/npe

    在我的 bash 脚本中,我创建了一个数组,其中包含我需要更改的依赖项,然后我遍历它

    for i in ${projects[@]}
    do
        npe dependencies.$i ${version}
    done
    

    【讨论】:

      猜你喜欢
      • 2018-06-03
      • 2017-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-19
      • 2015-02-07
      相关资源
      最近更新 更多