2012-03-03 2 views
8

을 의존도로 설치하려면 npm을 npm install을 통해 package.json에서 읽으려고합니다. 불행히도이 npm 패키지는 노드 0.6.x에서 깨졌지만 문제점을 수정하는 분기 된 저장소가 있으므로 문제는 없습니다 (https://github.com/hughsk/node-gitteh.git). 이제 npm은 서브 모듈로 forked git를 설치합니다

문제 나는 package.json에 GitHub의에서 타르를 다운로드하려고, 그래서 만약이 포크의 repo는, 서브 모듈을 가지고 있다는 것입니다 :

, "dependencies" : { 
    "gitteh" : "https://github.com/hughsk/node-gitteh/tarball/master" 
} 

나는 "서브 모듈 폴더를 찾을 수 없습니다"을 동일시 오류가 . 수동으로 동일한 저장소를 복제하고 node-gitteh 폴더에서 재귀 하위 모듈 업데이트와 npm install을 수행하면 정상적으로 작동하지만 npm에서이 작업을 수행하는 방법을 알 수 없습니다.

답변

1

나는 동일한 문제가 있었고 지금까지 node_modules에 내 모듈을 복제하고 서브 모듈 업데이트를 수동으로 수행해야만했습니다. npm이 자동으로 처리하도록하는 것이 좋을 것입니다. package.json에서

는 스크립트 필드있다 그래서

"scripts":{"preinstall": "git submodule update -i -r"} 

이의 예 https://github.com/isaacs/octave-test를 참조 할 수있는 ( npm docs 참조).

+1

npm은'.gitmodules'을 복사하지 않으므로 로컬에서만 작동합니다. ( –

+0

제 경우에는 npm이 .gitmodules를 제공하지만, .git 파일이 없으면 충분하지 않습니다. install :( – Steve

+0

Mine은'.gitmodules' 파일을 유지하지만, 그게 전부입니다. 다른 git 메타 데이터 중 아무 것도 나타나지 않으며 서브 모듈 디렉토리가 전혀 나타나지 않습니다. – Chev

-2

the docs에 따르면 git url을 특별한 형식으로 제공해야합니다. 또한 github에서 제공하는 tarball이 아니라 git repo (git clone과 동일한 주소)를 가리켜 야합니다. 귀하의 경우에는

(HTTPS를 통해 자식)은 다음과 같습니다

, "dependencies" : { 
    "gitteh" : "git+https://github.com/hughsk/node-gitteh" 
} 

이 사용, NPM은 마스터 분기로 기본 설정됩니다.

관련 문제