[node.js] npm package.json의 종속성으로 개인 github 리포지토리를 설치합니다.

다른 개인 github 리포지토리를 종속성으로 포함하는 npm으로 github 개인 리포지토리를 설치하려고합니다.

많은 방법과 게시물을 시도했지만 아무것도 작동하지 않습니다. 내가하고있는 일은 다음과 같습니다.

npm install git+https://github.com/myusername/mygitrepository.git

package.json의 내용은 다음과 같습니다.

"dependencies": {
    "repository1name": "git+https://github.com/myusername/repository1.git",
    "repository2name": "git+https://github.com/myusername/repository2.git"
}

올바른 방법은 무엇입니까?



답변

이 시도:

"dependencies" : {
  "name1" : "git://github.com/user/project.git#commit-ish",
  "name2" : "git://github.com/user/project.git#commit-ish"
}

visionmedia / express가 name / repo 인 경우에도 시도 할 수 있습니다.

"dependencies" : {
   "express" : "visionmedia/express"
}

또는 (npm 패키지 모듈이있는 경우) :

"dependencies" : {
  "name": "*"
}

NPM 문서 에서 가져온


답변

다음은 내가 필요한 모든 시나리오에서 잘 작동했습니다.

"dependencies": {
"GitRepo": "git+https://<token-from-github>:x-oauth-basic@github.com/<user>/<GitRepo>.git"
}


답변

공개 디렉토리를 위해 여기에 온 사람들을 위해, npm 문서에서 : https://docs.npmjs.com/files/package.json#git-urls-as-dependencies

의존성으로 Git URL

힘내 URL은 다음과 같은 형식 일 수 있습니다.

git://github.com/user/project.git#commit-ish
git+ssh://user@hostname:project.git#commit-ish
git+ssh://user@hostname/project.git#commit-ish
git+http://user@hostname/project/blah.git#commit-ish
git+https://user@hostname/project/blah.git#commit-ish

commit-ish는 git checkout의 인수로 제공 할 수있는 모든 태그, sha 또는 분기 일 수 있습니다. 디폴트는 master입니다.


답변

수락 된 답변은 효과가 있지만 안전한 토큰을 붙여 넣는 아이디어는별로 좋지 않습니다. package.json

다른 곳에서 찾았습니다 .git-config 맨 페이지에 설명 된 대로이 일회성 명령 실행하십시오 .

git config --global url."https://${GITHUB_TOKEN}@github.com/".insteadOf git@github.com:

GITHUB_TOKEN environmnet 변수로 설정되거나 직접 붙여 넣기 가능

그런 다음 개인 github repos를 다음과 같이 설치합니다. npm install user/repo --save


Heroku에서도 작동합니다. 위의 git config ...명령을 heroku-prebuild스크립트로 package.json설정 GITHUB_TOKEN하고 Heroku 구성 변수로 설정하십시오.


답변

사람들이 지적한대로 여러 가지 방법이 있지만 가장 짧은 버전은 다음과 같습니다.

// from master
"depName": "user/repo",

// specific branch
"depName": "user/repo#branch",

// specific commit
"depName": "user/repo#commit",

// private repo
"depName": "git+https://[TOKEN]:x-oauth-basic@github.com/user/repo.git"

예 :

"dependencies" : {
  "hexo-renderer-marked": "amejiarosario/dsa.jsd#book",
  "hexo-renderer-marked": "amejiarosario/dsa.js#8ea61ce",
  "hexo-renderer-marked": "amejiarosario/dsa.js",
}


답변

"dependencies": {
  "some-package": "github:github_username/some-package"
}

아니면 그냥

"dependencies": {
  "some-package": "github_username/some-package"
}

https://docs.npmjs.com/files/package.json#github-urls


답변

Git curl이 후드 아래에서 사용하기 때문에 ~/.netrc자격 증명과 함께 파일을 사용할 수 있습니다 . GitHub의 경우 다음과 같이 보일 것입니다.

machine github.com
  login <github username>
  password <password OR github access token>

를 사용하도록 선택하면 다음 access tokens에서 생성 될 수 있습니다.

설정-> 개발자 설정-> 개인 액세스 토큰

자체 회사에서 Github Enterprise를 사용하는 경우에도 작동합니다. machine필드 에 엔터프라이즈 github url을 넣으십시오 .