1. ホーム
  2. git

[解決済み] gitlab プライベートリポジトリから npm モジュールをインストールする。

2022-06-24 01:28:22

質問

私たちは 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 を取得します。 [email protected]:library/grunt-stylus-sprite.git . に対してこれを実行すると npm install に対して実行すると、インストールしようとする git モジュールのインストールを試みます。

しかし、URLを使って [email protected]:library/grunt-stylus-sprite.git を使用すると、突然パスワードを要求されます。私のSSHキーにはパスフレーズが含まれていないので、そのキーを読み込むことができなかったのだと思います。もしかしたら、私が見逃している設定があるのかもしれません。鍵はホームディレクトリの標準的な場所にあり、名前は "id_rsa" .

私はWindows 7 x64を使用しています。

アップデイト

NPM v3から、GitLabや他のソース(BitBucketやGist)のサポートが組み込まれ、そこからパッケージをインストールすることができるようになりました。これは公開と非公開の両方で動作するので、正確にはこれとは関係ありませんが、一部の人はこれを便利だと思うかもしれません。

npm install gitlab:<gitlabname>/<gitlabrepo>[#<commit-ish>]

ドキュメントを確認する https://docs.npmjs.com/cli/install

Gitlab のプライベートリポジトリで作業したい場合、認証情報/認証トークンを自分の .npmrc . こちらをご覧ください。 https://docs.gitlab.com/ee/user/packages/npm_registry/#authenticate-to-the-package-registry

どのように解決するのですか?

gitlabのプライベートリポジトリに接続するには、以下の方法があります。

SSHを使用する

git+ssh://[email protected]:Username/Repository#{branch|tag}
git+ssh://[email protected]/Username/Repository#{branch|tag}

HTTPSで

git+https://[email protected]/Username/Repository#{branch|tag}

HTTPSとデプロイトークンの場合

git+https://<token-name>:<token>@gitlab.com/Username/Repository#{branch|tag}