You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过npm CLI添加指定semver范围的peer依赖,无需手动修改package.json

通过CLI添加指定SemVer范围的peer依赖(无需手动编辑package.json)

当执行以下命令时:

npm i --save-peer react@">= 18" svelte@"*"

package.json的peerDependencies会被自动替换为解析后的具体版本范围:

"peerDependencies": {
  "react": "^18.3.1",
  "svelte": "^4.2.18"
}

但我们期望保留指定的原始SemVer范围,让解析后的具体版本仅出现在package-lock.json中:

"peerDependencies": {
  "react": ">= 18",
  "svelte": "*"
}

解决方案

方法1:使用npm pkg set直接配置(推荐)

npm pkg set命令可以直接修改package.json的字段,完全保留你指定的SemVer范围,不会触发版本解析写入package.json:

npm pkg set peerDependencies.react=">= 18" peerDependencies.svelte="*"

执行后package.json的peerDependencies会直接变为期望的格式。如果需要同步安装依赖到node_modules并生成package-lock.json,再单独执行:

npm install

方法2:临时修改npm配置(不推荐)

通过修改save-prefix配置,临时禁用npm自动替换版本范围的行为:

# 临时取消默认的版本前缀
npm config set save-prefix ""
# 添加peer依赖
npm i --save-peer react@">= 18" svelte@"*"
# 恢复默认配置
npm config set save-prefix "^"

此方法会全局影响npm的版本前缀设置,可能导致其他依赖的版本格式不符合预期,因此更推荐第一种方法。

内容的提问来源于stack exchange,提问作者Estus Flask

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 06:16:00