gitlab 개인 저장소에서 npm 모듈 설치
우리는 개인 프로젝트에 GitLab 을 사용하고 있습니다. npm 모듈로 설치하려는 github의 분기 라이브러리가 있습니다. 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이 git@git.domain.com:library/grunt-stylus-sprite.git
있습니다. npm install
설치 하면 npm이 설치 git
됩니다.
그러나 URL을 사용하면 git+ssh@git.domain.com: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 저장소에 연결하는 방법은 다음과 가능합니다.
SSH 사용
git+ssh://git@git.mydomain.com:Username/Repository#{branch|tag}
git+ssh://git@git.mydomain.com/Username/Repository#{branch|tag}
HTTPS 사용
git+https://git@git.mydomain.com/Username/Repository#{branch|tag}
HTTPS 및 배포 토큰 사용
git+https://<token-name>:<token>@gitlab.com/Username/Repository#{branch|tag}
대신 git://
사용하고 git+ssh://
npm이 올바른 작업을 수행해야합니다.
최신 정보
@felix가 주석에서 언급했듯이 (@felix에게 감사드립니다) .NET deploy token
에서 개인을 읽는 데 훨씬 더 관련이 있습니다 gitlab
. 이렇게하면 토큰이 손상되고 공격자는 해당 저장소를 읽을 수 있습니다.
- 귀하의
GitLab
계정에 로그인하십시오 . - 배포 토큰을 만들려는 프로젝트로 이동합니다.
- 설정> 리포지토리로 이동합니다.
Expand
토큰 배포 섹션을 클릭합니다 .- 토큰의 이름과 선택적으로 마감 날짜를 선택하십시오.
- 원하는 범위를 선택하십시오. <= 선택
read_repository
- 배포 토큰 생성을 클릭합니다.
- 배포 토큰을 안전한 곳에 저장하십시오. 페이지를 나가거나 새로 고침하면 다시 액세스 할 수 없습니다.
이전 답변
이동 하여 권한이 User Settings > Access Tokens
있는 새 만들기 .access token
read_registry
사본이 생성 token
됩니다 package.json
. 에 파일 필요 합니다.
이제 바로 같이 package.json
추가하십시오 dependency
.
"my-module": "git+https://Xaqron:token@gitlab.com/Xaqron/my-module"
Xaqron
사용자 이름과 token
생성 된 토큰으로 바꿉니다 . 으로 URL 끝에 branch
및 tag
을 수 있습니다 #{branch|tag}
.
참고 : 액세스 토큰은 package.json
이 프로젝트에 대한 액세스 권한이 있는 모든 사용자가 저장소를 읽을 수 있으므로 프로젝트 자체가 비공개라고 가정합니다.
그것은 REPO (예에 대한 직접 링크를 지원하지 않는 것 같습니다 - 그냥이를 통해 실수를 한단다 다른 사람을 위해, 나는 그것이 전혀 이상 HTTPS 일 수 없었다 https://git.domain.com/user/somerepo.git
),도 그것은을 지원하지 않습니다 .tar
, .tar.bz
또는 .zip
아카이브 버전.
.tar.gz
아카이브 에서만 작동하는 것 같습니다 .
전체 예 (태그 된 버전 포함) :
https://git.domain.com/user/somerepo/repository/archive.tar.gz?ref=v1.2.3
질문은 Gitlab에 관한 것이지만이 질문은 Google 검색에서 순위가 상당히 높으므로 Github에서 얻은 유사한 문제를 해결하는 방법에 대한 추가 정보가 있습니다.
나를 위해 URL을 변경하는 것만으로 작동하지 않았습니다. 이 문제를 해결하기 위해 수행해야하는 단계는 다음과 같습니다.
git+ssh://git@github.com:owner/repo.git#master
- 배포 키를 만들고 저장소에 추가
~/.ssh/config
기본 ssh 키 대신 DeployKey를 사용하도록 git config ( 파일이없는 경우 생성)를 편집 합니다.
그 후 npm 설치가 간단히 작동했습니다. 다른 모든 옵션과 솔루션은 npm 설치 중단으로 인해 발생했습니다.
내가 어디에서 잘못되고 있는지 말할 수있는 한 git://
프로토콜입니다. GitLab은 클론에 대해 HTTP (s) 및 SSH 만 지원합니다. 따라서 git 프로토콜 대신 이러한 방법 중 하나를 사용해야합니다.
다른 답변 중 어느 것도 개인 gitlab.com 저장소에 대해 나를 위해 일하지 않았습니다.
그러나 이것은 작동합니다.
npm i -S git+ssh://git@gitlab.com:<org>/<project>.git
프로젝트 페이지의 "clone"입력 필드에있는 git ssh 복제 URL git+ssh://
이 앞에 추가됩니다.
나를 위해 package.json을 아래와 같이 설정하십시오.
"dependencies": {
"<module-name>": "git+http://<username>:<token>@url.git",
}
토큰은 "프로필 설정-액세스 토큰"에서 가져옵니다.
참고 URL : https://stackoverflow.com/questions/22988876/install-npm-module-from-gitlab-private-repository
'ProgramingTip' 카테고리의 다른 글
모든 좋은 PHP 개발자가 답할 수있는 질문 (0) | 2020.10.18 |
---|---|
Firefox 기록으로 돌아 가면 JavaScript가 실행되지 않습니다. (0) | 2020.10.18 |
UIViewController의 뷰를 서브 뷰로 추가하는 방법 (0) | 2020.10.18 |
CSS3 box-shadow : 인세 트는 한쪽 또는 양면 만 할 수 있습니까? (0) | 2020.10.18 |
두 개의 PHP Doctrine 2 ArrayCollection ()을 병합하는 방법 (0) | 2020.10.18 |