node.js - 具有 semver 范围的 Git SSH URL 作为 npm 依赖项
问题描述
在遵循官方 npm 文档中的示例时:
git+ssh://git@github.com:npm/npm.git#v1.0.27 git+ssh://git@github.com:npm/npm#semver:^5.0 git+https://isaacs@github.com/npm/npm.git git://github.com/npm/npm.git#v1.0.27
我尝试npm install
使用semver范围从私有 GitLab 存储库中获取依赖项,如下所示:
git+ssh://git@gitlab.example.com:group/project.git#semver:^1.2.3
但我收到以下错误:
npm 错误!代码 1 npm 错误!命令失败:/usr/bin/git checkout semver:^1.2.3 npm 错误!错误:pathspec 'semver:^1.2.3' 与 git 已知的任何文件都不匹配。 npm 错误! npm 错误!可以在以下位置找到此运行的完整日志: npm 错误!/path/to/DATE-debug.log
即使指定分支或特定标签工作正常:
git+ssh://git@gitlab.example.com:group/project.git#branch_1_2 git+ssh://git@gitlab.example.com:group/project.git#1.2.3
版本信息:
- 操作系统:ubuntu 18.04
- 节点-v:v10.0.0
- npm -v:v5.6.0
解决方案
这是一个错误
替换URL 的主机和路径部分之间的冒号:
git+ssh://git@gitlab.example.com/group/project.git#semver:^1.2.3 此处不要使用冒号 ^
信息
根据官方 npm 文档,您应该能够使用冒号或斜杠:
<protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish> | #semver:<semver>]
但 GitLab [un] 为您提供了带有冒号的链接以进行复制/粘贴。
正如在这个npm github 问题中提到的:
似乎早在 5.1.x 就出现了这种情况。使用时有效
npm i -g npm@~5.0.0
正如引用的npm github pull request中所述,该错误现已修复,但从 v5.6.0 开始还不是 npm 的一部分
推荐阅读
- excel - 用于根据索引表中的动态范围创建新表的 VBA
- networking - 一段时间后以太网电缆出现问题 - 仅上行链路
- ionic4 - 用于网络浏览器的 Ionic 4 社交共享插件
- javascript - 如何检测对phaser3中图像的点击
- ios - 如何处理 shell 脚本中的 appcenter 登录错误?
- r - 将文本文件合并到 R 中相同标题下的 csv
- javascript - 在 React 中将对象传递给组件
- python - Selenium Python 中的警报处理
- sql-server - 如何查找有关 xp_passAgentInfo 的信息
- databricks - Databricks:dbfs:/与文件:/之间的区别