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

如何解决npm忽略git+https配置将package-lock.json依赖改为git+ssh问题

可行解决方案

以下方案可单独使用,也可搭配使用实现多重保障:

  • 项目级npm配置强制走HTTPS拉取GitHub依赖
    在项目根目录新增.npmrc文件,写入以下配置:
    git+ssh://git@github.com/ = git+https://github.com/
    
    或者在项目目录下执行命令npm config set git+ssh://git@github.com/ git+https://github.com/ --location project自动生成该配置。该配置会随代码提交到仓库,所有开发人员拉取代码后,npm在安装依赖、生成lock文件时会自动将所有GitHub的SSH依赖地址转为HTTPS格式,从根源避免lock文件被自动改写为SSH源。
  • 提交前校验lock文件格式
    可在项目的Git提交钩子(如pre-commit、lint-staged规则)中增加校验逻辑,检查package-lock.json中是否存在git+ssh://git@github.com前缀的依赖地址,一旦匹配就阻断提交,避免异常格式的lock文件进入代码仓库。
  • CI侧兜底配置
    就算出现异常格式的lock文件流入仓库,也可以在CI构建任务的依赖安装步骤前,执行以下命令:
    git config --global url."https://github.com/".insteadOf ssh://git@github.com/
    该配置会让git在拉取代码时自动将所有GitHub的SSH请求替换为HTTPS请求,公共仓库不需要身份验证即可拉取,可直接规避构建失败问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:45:05