如何在不安装的情况下修改package.json个依赖

How to modify package.json dependencies without installation

我有一个生成一些包的自动脚本,其中一个包使用其他生成的包作为依赖项。因此,例如,如果我有包 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,所以我不能只使用一些东西这会将依赖项更新到最新版本)

我试过在互联网上查找,我发现了一些东西(例如这个问题:)但是他们仍然检查包是否存在然后给我错误。

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

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

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