programing

npm은 패키지에 종속성별로 개인 github 저장소를 설치합니다.제이손

iphone6s 2023. 5. 27. 09:55
반응형

npm은 패키지에 종속성별로 개인 github 저장소를 설치합니다.제이손

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

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

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

꾸러미로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"
}

비전 미디어/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

Giturl은 다음 형식일 수 있습니다.

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 man 페이지에 나와 있는 대로 이 일회성 명령을 실행하십시오.

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

GITHUB_TOKEN환경 변수로 설정하거나 직접 붙여넣을 수 있습니다.

그런 다음 다음과 같은 개인 github 저장소를 설치합니다.npm install user/repo --save


헤로쿠에서도 작동합니다. 위의 설정만 하면 됩니다.git config ...로서 명령함.heroku-prebuild대본을 작성하다.package.json및 설정GITHUB_TOKENHeroku 구성 변수로 사용됩니다.

사람들이 지적하는 바와 같이 여러 가지 방법이 있지만 가장 짧은 버전은 다음과 같습니다.

// 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

기트가 사용하기 때문에curl후드 아래에서 자격 증명이 있는 파일을 사용할 수 있습니다.GitHub의 경우 다음과 같습니다.

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

사용하기로 선택한 경우access tokens다음에서 생성할 수 있습니다.

설정 -> 개발자 설정 -> 개인 접근 토큰

이것은 당신이 당신의 회사에서 Github Enterprise를 사용하고 있는 경우에도 작동합니다.기업의 githuburl을 에 넣기만 하면 됩니다.machine들판.

다음은 에서 게시하지 않고 Github 토큰을 사용하는 방법에 대한 더 자세한 버전입니다.package.json파일.

  1. 개인 github 액세스 토큰 만들기
  2. ~/.gitconfig에서 설정 URL 다시 쓰기
git config --global url."https://<TOKEN HERE>:x-oauth-basic@github.com/".insteadOf https://x-oauth-basic@github.com/
  1. 개인 리포지토리를 설치합니다.액세스 오류 디버깅을 위한 상세 로그 수준입니다.
npm install --loglevel verbose --save git+https://x-oauth-basic@github.com/<USERNAME HERE>/<REPOSITORY HERE>.git#v0.1.27

Github에 대한 액세스가 실패하는 경우,git ls-remote ...합니다.npm install will print

또한 키의 액세스를 안전하게 하기 위해

  1. 패키지와 동일한 디렉터리 수준에서 .env 파일을 생성합니다.json이 상주합니다.
  2. .env 파일에 Personal_ACCESS_TOKEN=********************를 언급합니다.
  3. .gitingore 목록에 '.env'를 추가하는 것을 잊지 마십시오. 이 목록은 gitingore가 repo에 커밋하는 동안 외부 세계에 키를 노출하는 것을 방지합니다.
  4. 이제 패키지에 종속성을 추가할 수 있습니다.아래와 같이 json,

패키지.제이손

"의존 관계": {..."my-private-github-repo": "git+https://${ENV.Personal_ACCESS_TOKEN}@github.com/USER/abcd-repo-3.4.0.git", ...}

'DOTENV' npm 패키지를 사용하는 다른 방법도 있지만, "Github" 패키지 종속성을 해결하려고 할 때는 별 도움이 되지 않았습니다.위의 내용은 간단한 해결책인 것 같습니다.

SSH 키도 있습니다 - 여전히 암호와 암호를 요청하는 중입니다.

용사를 합니다.ssh-add ~/.ssh/id_rsa로컬 키 체인이 없습니다.

이렇게 하면 토큰을 조작할 필요가 없습니다.

마스터 또는 특정 커밋에 고정되지 않은 종속성을 추가하려면 semver를 사용하여 이를 수행할 수 있습니다.그런 식으로:

"dependencies": {
  "some-package": "github:github_username/some-package#semver:^1.0.0"
}

개인 저장소 참조의 경우 보안 토큰을 포함하고 싶지 않았고, 다른 단순한 것(즉, package.json에만 지정)은 작동하지 않았습니다.효과는 다음과 같습니다.

  1. GitHub.com 에 갔습니다.
  2. 개인 리포지토리로 이동
  3. "복제 또는 다운로드"를 클릭하고 복사된 URL(위의 예와 일치하지 않음)
  4. #commit-sha 추가됨
  5. npm 설치 실행

패키지에 종속성으로 추가하려는 github 저장소에 유의하십시오.json 파일에는 자체 패키지가 있어야 합니다.json 파일이 정의되었습니다.

언급URL : https://stackoverflow.com/questions/23210437/npm-install-private-github-repositories-by-dependency-in-package-json

반응형