어떻게이 같은 개인 Github에서의 환매 특약 나열 할 "dependency"
의를 package.json
? npm의 Github URL 구문을 시도했지만 패키지 폴더에서 ryanve/example
수행 npm install
하면 개인 종속성에 대해 "설치할 수 없습니다"오류가 발생합니다. 개인 저장소에 따라 특별한 구문 (또는 다른 메커니즘)이 있습니까?
어떻게이 같은 개인 Github에서의 환매 특약 나열 할 "dependency"
의를 package.json
? npm의 Github URL 구문을 시도했지만 패키지 폴더에서 ryanve/example
수행 npm install
하면 개인 종속성에 대해 "설치할 수 없습니다"오류가 발생합니다. 개인 저장소에 따라 특별한 구문 (또는 다른 메커니즘)이 있습니까?
답변:
https 및 oauth 또는 ssh 를 통해 수행 할 수 있습니다 .
https 및 oauth : 범위가 "repo" 인 액세스 토큰 을 작성한 후 다음 구문을 사용하십시오 .
"package-name": "git+https://<github_token>:x-oauth-basic@github.com/<user>/<repo>.git"
또는
ssh : ssh를 설정 한 후 다음 구문을 사용하십시오.
"package-name": "git+ssh://git@github.com:<user>/<repo>.git"
(사용자 앞에 슬래시 대신 콜론을 사용하십시오)
"package-name": "git+https://<github_token>:x-oauth-basic@github.com/<user>/<repo>.git"
나를 위해 일하지 않았다. 놀랍게도 토큰과 x-oauth-basic을 전환하여 작업을 수행했습니다. 그래서 "package-name": "git+https://x-oauth-basic:<github_token>@github.com/<user>/<repo>.git"
나를 위해 일합니다. github이 아닌 gitlab에 있습니다.
https
적용 x-oauth-basic
됩니다 "package-name": "git+https://<github_token>@github.com/<user>/<repo>.git"
.
누군가 Git Lab에 대한 다른 옵션을 찾고 있는데 위의 옵션이 작동하지 않으면 다른 옵션이 있습니다. Git Lab 서버의 로컬 설치의 경우 아래의 접근 방식을 통해 패키지 종속성을 포함시킬 수 있음을 발견했습니다. 액세스 토큰을 생성하여 사용했습니다.
$ npm install --save-dev https://git.yourdomain.com/userOrGroup/gitLabProjectName/repository/archive.tar.gz?private_token=InsertYourAccessTokenHere
물론 이런 식으로 액세스 키를 사용하는 경우 제한된 권한 집합이 있어야합니다.
행운을 빕니다!
git에는 https 형식이 있습니다
https://github.com/equivalent/we_demand_serverless_ruby.git
이 형식은 사용자 + 비밀번호를 허용합니다
https://bot-user:xxxxxxxxxxxxxxxxxxxxxxxxxxx@github.com/equivalent/we_demand_serverless_ruby.git
따라서 봇처럼 사용할 새 사용자를 만들고 NPM 모듈에로드하려는 리포지토리를 읽을 수있는 충분한 권한 만 추가하면됩니다.
packages.json
Github > Click on Profile > Settings > Developer settings > Personal access tokens > Generate new token
범위 선택 파트에서 on repo : 개인 저장소의 모든 권한을 확인하십시오.
이는 토큰이 사용자가 볼 수있는 개인 저장소에 액세스 할 수 있도록하기위한 것입니다.
이제 조직에서 새 그룹을 만들고이 사용자를 그룹에 추가하고이 방법으로 가져올 것으로 예상되는 리포지토리 만 추가하십시오 (읽기 전용 권한!).
이 설정 을 개인 저장소에만 푸시해야합니다
그런 다음 이것을 / packages.json에 추가 할 수 있습니다 (bot-user는 사용자 이름, xxxxxxxxx는 생성 된 개인 토큰입니다)
// packages.json
{
// ....
"name_of_my_lib": "https://bot-user:xxxxxxxxxxxxxxxxxxxxxxxxxxx@github.com/ghuser/name_of_my_lib.git"
// ...
}
https://blog.eq8.eu/til/pull-git-private-repo-from-github-from-npm-modules-or-bundler.html
"<package>": "git+ssh://git@github.com/<user>/<repo>.git