package.json에서 git URL을 사용하는 분기 또는 태그에 의존합니까? 수정이있는 노드 모듈을 분기했으며

버그 수정이있는 노드 모듈을 분기했으며 기능 수정 지점에서 버그 수정이 병합 및 릴리스 될 때까지 고정 버전을 사용하고 싶다고 가정 해 보겠습니다.

어떻게 내 고정 된 버전을 참조하는 것이 dependencies내의 package.json?



답변

로부터 NPM 워드 프로세서 :

git://github.com/<user>/<project>.git#<branch>

git://github.com/<user>/<project>.git#feature\/<branch>

NPM 버전 1.1.65부터 다음을 수행 할 수 있습니다.

<user>/<project>#<branch>

답변

@dantheta의 의견에 따라 :

npm 1.1.65부터 Github URL은 더 간결한 사용자 / 프로젝트가 될 수 있습니다. npmjs.org/doc/files/package.json.html user / project # branch와 같이 브랜치를 연결할 수 있습니다

그래서

"babel-eslint": "babel/babel-eslint",

또는 jscs의 태그 v1.12.0의 경우 :

"jscs": "jscs-dev/node-jscs#v1.12.0",

npm –save를 사용하면 더 긴 자식을 얻을 수 있습니다.

에서 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입니다.

GitHub URL

버전 1.1.65부터는 GitHub URL을 “foo”: “user / foo-project”로 나타낼 수 있습니다. 자식 URL과 마찬가지로 커밋-쉬미 접미사를 포함 할 수 있습니다. 예를 들면 다음과 같습니다.

{ “name”: “foo”,
“version”: “0.0.0”,
“dependencies”: { “express”: “visionmedia / express”, “mocha”: “visionmedia / mocha # 4727d357ea”}}


답변

사용 devel하거나 feature분기하거나 NPM 레지스트리에 특정 패키지를 게시하지 않았거나 개인 모듈이기 때문에 패키지를 게시 할 수없는 경우 다음 git://에서 버전 번호 대신 URI를 가리킬 수 있습니다 package.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), 또는 일부 또는 전체 이드 커밋.


답변

최신 버전의 NPM에서는 다음을 수행 할 수 있습니다.

npm install gitAuthor/gitRepo#tag

리포지토리가 유효한 NPM 패키지 인 경우 package.json에서 다음과 같이 자동 별칭이 지정됩니다.

{
"NPMPackageName": "gitAuthor/gitRepo#tag"
}

이것을 @justingordon의 답변에 추가 할 수 있다면 지금은 수동 앨리어싱이 필요하지 않습니다!


답변

그것이 누군가를 돕는다면, 위의 모든 것을 시도했지만 (https w / token mode) 여전히 아무것도 작동하지 않았습니다. 오류가 없지만 node_modules 또는 package_lock.json에 아무것도 설치되지 않습니다. repo 이름이나 사용자 이름 등의 토큰이나 문자를 변경하면 오류가 발생합니다. 그래서 올바른 토큰과 리포 이름을 가지고 있다는 것을 알았습니다.

마침내 내 package.json에있는 종속성의 이름이 내가 가져 오려고하는 repo의 package.json의 이름과 일치하지 않기 때문에 그것이 깨달았습니다. npm install –verbose조차도 아무런 문제가 없다고 말합니다. 오류가없는 종속성을 무시하는 것 같습니다.