2016-07-21 5 views
3

git submodules이 서로있는 웹 프로젝트가 있습니다. 기능 테스트를 위해 우리는 PhantomJSSelenium을 사용합니다 (하나는 로컬 개발 용이고 다른 하나는 CI 배포 및 비주얼 회귀 테스트 용입니다).npm 모듈은 전역 적으로 사용할 수없는 경우에만 로컬로 설치합니다.

각 서브 모듈 자체는 package.json이므로 PhantomJSselenium-standalone이 부트 스트랩 프로세스 중에 여러 번 설치됩니다.

내 질문은 다음과 같습니다. 이러한 거대한 npm 모듈을 전체적으로 설치할 수 있으며 내 응용 프로그램이 전역 설치를 선택할 수 있으며 사용할 수없는 경우에만 캐시 또는 원격 저장소에서 가져 오십시오.

뭔가 같은 :

if(global_install){ continue } else{ npm install }

답변

2

어쩌면 해결책 여기에 무엇을 제안 RedSpar0w 수 있습니다 : 세계적으로 설치 https://github.com/npm/npm/issues/2949#issuecomment-238703924

{ 
    "name": "Meh", 
    "description": "Some Description", 
    "scripts": { 
     "preinstall": "(npm list someDependency -g && npm install otherDependency -g) || (npm list someDependency || npm install someDependency) && npm install otherDependency -g" 
    } 
} 

검사 someDependency 경우 그럼 세계적으로 을 otherDependency 설치, 그렇지 않으면 someDependency 있는지 확인 로컬로 설치하고 그렇지 않으면 someDependency를 로컬로 설치하지만 someDependency가 그렇지 않기 때문에 어느 쪽이든 다른 설치를 글로벌하게 설치하십시오. 로컬로 설치

필요에 따라 재생할 수 있습니다.

+0

아 그럴 수도 있습니다. '예'를 생각하지 않았다. 감사! – nikjohn

관련 문제