我们正在使用我们的私人项目 GitLab。有一些来自 github 的分支库,我们希望以 npm 模块的形式安装它们。直接从 npm 安装该模块是可以的,例如:
npm install git://github.com/FredyC/grunt-stylus-sprite.git
... 也可以正常工作,但是对 GitLab 也是一样,只是改变域名就会出现这个错误。
npm WARN `git config --get remote.origin.url` returned wrong result (git://git.domain.com/library/grunt-stylus-sprite.git)
npm ERR! git clone git://git.domain.com/library/grunt-stylus-sprite.git Cloning into bare repository 'D:\users\Fredy\AppData\Roaming\npm-cache\_git-remotes\git-git-domain-com-library-grunt-stylus-sprite-git-6f33bc59'...
npm ERR! git clone git://git.domain.com/library/grunt-stylus-sprite.git fatal:unable to connect to git.domain.com:
npm ERR! git clone git://git.domain.com/library/grunt-stylus-sprite.git git.domain.com[0: 77.93.195.214]: errno=No error
npm ERR! Error: Command failed: Cloning into bare repository 'D:\users\Fredy\App
Data\Roaming\npm-cache\_git-remotes\git-git-domain-com-library-grunt-stylus-spr
ite-git-6f33bc59'...
npm ERR! fatal: unable to connect to git.domain.com:
npm ERR! git.domain.com[0: xx.xx.xx.xx]: errno=No error
从 GitLab 的网页界面,我得到了这个 URL
对 npm install
运行这个命令,它尝试从 npm 注册表安装 git
模块。
然而,使用 URL: git+ssh@git.domain.com:library/grunt-stylus-sprite.git
突然要求我输入密码。我的 SSH 密钥不包含密码短语,所以我假设它无法加载该密钥。也许有一些配置,我已经错过了?密钥位于我的主目录中的标准位置,名为 "id_rsa"
。
我用的是 Windows7x64。
更新
由于 NPM v3内置了对 GitLab 和其他来源(BitBucket,Gist)的支持,您可以从这些来源安装软件包。它适用于公共的和私有的,所以它并不完全与此相关,但是有些人可能会发现它很有用。
npm install gitlab:<gitlabname>/<gitlabrepo>[#<commit-ish>]
查看文档: https://docs.npmjs.com/cli/install
如果你想在 Gitlab 从事私人回购业务,你必须在你的 ABc0中管理你的凭证/认证令牌。看这里: https://docs.gitlab.com/ee/user/packages/npm_registry/#authenticate-to-the-package-registry