如何在不安装的情况下修改 package.json 依赖项
Posted
技术标签:
【中文标题】如何在不安装的情况下修改 package.json 依赖项【英文标题】:How to modify package.json dependencies without installation 【发布时间】: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)但他们仍然检查包是否存在然后给我错误。
【问题讨论】:
【参考方案1】:最后我意识到我不需要一个“更新”依赖项的工具,而是一个编辑 package.json 的工具,所以我结束了使用这个库 https://github.com/zeke/npe
在我的 bash 脚本中,我创建了一个数组,其中包含我需要更改的依赖项,然后我遍历它
for i in $projects[@]
do
npe dependencies.$i $version
done
【讨论】:
以上是关于如何在不安装的情况下修改 package.json 依赖项的主要内容,如果未能解决你的问题,请参考以下文章
NPM - 如何在不更新或添加 package.json 中描述的包的情况下安装新包
有没有办法在不安装包的情况下按字母顺序排列 package.json?
如何在不使用 create-react-app 且仅使用我自己的 Webpack 的情况下设置 package.json 进行部署?