package.json의 git URL을 사용하여 분기 또는 태그에 의존합니까?
예를 들어 버그 수정이 있는 노드 모듈을 포크했다고 가정하면 버그 수정이 병합되어 릴리스될 때까지 기능 분기에서 내 고정 버전을 사용하고 싶습니다.
다음에서 내 고정 버전을 어떻게 참조합니까?dependencies
나의package.json
?
솔루션 1
git URL을 사용하여 npm 문서에서:
https://github.com/<user>/<project>.git#<branch>
https://github.com/<user>/<project>.git#feature\/<branch>
사용 안 함git://
GitHub에 대한 프로토콜, 더 이상 지원되지 않습니다.
솔루션 2
NPM 버전 1.1.65 이후에는 짧은 github URL을 사용할 수 있습니다.
<user>/<project>#<branch>
@dantheta의 코멘트에 따라:
npm 1.1.65 기준으로 Github URL은 보다 간결한 사용자/프로젝트가 가능합니다.npmjs.org/doc/files/package.json.html user/project#backup처럼 브랜치를 부착할 수 있습니다.
그렇게
"babel-eslint": "babel/babel-eslint",
또는 jscs의 태그 v1.12.0의 경우:
"jscs": "jscs-dev/node-jscs#v1.12.0",
참고로, npm --save를 사용하면 더 긴 git를 얻을 수 있습니다.
출처: https://docs.npmjs.com/cli/v6/configuring-npm/package-json#git-urls-as-dependencies
종속성으로 Git URL
Giturl은 다음과 같은 형식입니다.
git+ssh://git@github.com:npm/cli.git#v1.0.27
git+ssh://git@github.com:npm/cli#semver:^5.0
git+https://isaacs@github.com/npm/cli.git
git://github.com/npm/cli.git#v1.0.27
한다면
#<commit-ish>
제공된 경우 해당 커밋을 정확히 복제하는 데 사용됩니다.만약 > 커밋-ish가 형식을 가지고 있다면#semver:<semver>
,<semver>
유효한 semver 범위 또는 정확한 버전일 수 있으며, npm은 레지스트리 종속성과 마찬가지로 원격 저장소에서 해당 범위와 일치하는 태그 또는 ref를 찾습니다.둘 다 아니면#<commit-ish>
또는#semver:<semver>
마스터가 사용됩니다.
GitHub URL
버전 1.1.65에서 GitHub URL은 단순히 "foo": "user/foo-project"로 지칭할 수 있습니다.git URL과 마찬가지로 commit-ish 접미사를 포함할 수 있습니다.예:
{ "name": "foo", "version": "0.0.0", "dependencies": { "express": "expressjs/express", "mocha": "mochajs/mocha#4727d357ea", "module": "user/repo#feature\/branch" } }```
사용할 경우devel
또는feature
지점, 또는 특정 패키지를 NPM 레지스트리에 게시하지 않았거나 개인 모듈이기 때문에 게시할 수 없습니다. 그러면 다음을 가리킬 수 있습니다.git://
사용자의 버전 번호 대신 URIpackage.json
:
"dependencies": {
"public": "git://github.com/user/repo.git#ref",
"private": "git+ssh://git@github.com:user/repo.git#ref"
}
그#ref
부분은 선택 사항이며, 분기일 수 있습니다(예:master
, 태그(예:0.0.1
) 또는 부분 또는 전체 커밋 ID입니다.
최신 버전의 NPM에서는 다음을 수행할 수 있습니다.
npm install gitAuthor/gitRepo#tag
repo가 유효한 NPM 패키지인 경우 패키지에서 자동 별칭이 지정됩니다.json as:
{ "NPMPackageName": "gitAuthor/gitRepo#tag" }
@justingordon의 답변에 이것을 추가할 수 있다면 지금 수동 에일리어스가 필요하지 않습니다!
특정 커밋을 사용하려는 경우 이를 사용할 수 있습니다.
템플릿:
github:{UserName}/{RepoName}#{CommitId}
패키지의 사용 예.json:
"react": "github:facebook/react#e40893d097f6894b4768d749f796302c57161734"
만약 누군가에게 도움이 된다면, 저는 위의 모든 것을 시도했습니다. (https와 토큰 모드) - 여전히 아무 것도 작동하지 않았습니다.오류는 없었지만 node_modules 또는 package_lock.json에는 아무 것도 설치되지 않았습니다.토큰이나 레포 이름 또는 사용자 이름의 문자 등을 변경한 경우 오류가 발생합니다.그래서 저는 제가 올바른 토큰과 레포 이름을 가지고 있다는 것을 알았습니다.
나는 마침내 그것이 내 패키지에 있는 종속성의 이름 때문이라는 것을 깨달았습니다.json이 패키지의 이름과 일치하지 않습니다.내가 뽑으려고 했던 레포의 아들.npm install --verbose에서도 문제가 없다고 합니다.오류 없이 종속성을 무시하는 것 같습니다.
언급URL : https://stackoverflow.com/questions/16350673/depend-on-a-branch-or-tag-using-a-git-url-in-a-package-json
'sourcecode' 카테고리의 다른 글
터미널에서 iOS 시뮬레이터를 시작하려면 어떻게 해야 합니까? (0) | 2023.05.03 |
---|---|
git diff의 출력을 읽는 방법은 무엇입니까? (0) | 2023.05.03 |
GitHub에서 저장소 이름을 변경하려면 어떻게 해야 합니까? (0) | 2023.05.03 |
WPF에서 데이터 트리거에 대한 여러 조건을 제공하려면 어떻게 해야 합니까? (0) | 2023.05.03 |
TypeLoadException에 ' 구현 없음'이라고 표시되지만 구현됩니다. (0) | 2023.05.03 |