2014-05-23 1 views
0

저는 현재 Openshift에 앱을 배포하려고합니다. openshift 때문에 npm의 이전 버전을 사용합니다 (버전 번호에 ^를 지원하지 않음). shrinkwrap.json 파일을 만들었습니다. 서버에서 NPM 실행 설치함으로써npm 설치 오류 (수축 포장 포함)

내가 얻을 :

내 package.json에서
npm ERR! peerinvalid The package grunt does not satisfy its siblings' peerDependencies requirements!   
npm ERR! peerinvalid Peer [email protected] wants [email protected]~0.4.0   
npm ERR! peerinvalid Peer [email protected] wants [email protected]~0.4.0   
npm ERR! peerinvalid Peer [email protected] wants [email protected]~0.4.0   
npm ERR! peerinvalid Peer [email protected] wants [email protected]~0.4.0   
npm ERR! peerinvalid Peer [email protected] wants [email protected]~0.4.1   
npm ERR! peerinvalid Peer [email protected] wants [email protected]~0.4.0   
npm ERR! peerinvalid Peer [email protected] wants [email protected]~0.4.0   
npm ERR! peerinvalid Peer [email protected] wants [email protected]^0.4.0   
npm ERR! peerinvalid Peer [email protected] wants [email protected]~0.4.0 

내가 가진 :

"dependencies": { 
    .... 
    "grunt": "~0.4.5", 
    .... 

내가 예를 들어,의 종속성을 변경하지 못할 grunt-contrib-cssmin 왜냐하면 그들은 내 의존성에있는 다른 패키지의 의존성이기 때문입니다.

누구나 아이디어를 얻을 수 있습니까?

힌트 : Openshift는 NPM의 V를 실행 1.2.4

답변

1

난 당신의 종속성을 제어 소스 및 해제를 시도 커밋 (당신이 당신의 package.json 파일에 ^ 표시를 변경할 수없는 경우)입니다 추천 할 것입니다 무엇. OpenShift에 의해 실행되는 npm install. 배포하는 항목의 종속성을 확인하는 아이디어는 실제로 점점 더 보편화되고 있으며 실제로보고있는 이러한 배포 문제를 피할 수 있습니다.
http://www.futurealoof.com/posts/nodemodules-in-git.html
https://www.npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git

그러나 나는 가정 당신이 npm install을 해제 할 수 없습니다, 당신은 다음과 같은 시도 할 수 있습니다 의미 : 나는 OpenShift와 가장 잘 알고 아니에요

을 여기 내 지점을 전달하기 위해 몇 가지 기사입니다 , 적어도 올바른 방향으로 당신을 가리킬 수있을 것입니다. OpenShift를 이해하는대로 action_hooks을 사용하면 빌드 및 배포 단계를 무시 (또는 적어도 참여) 할 수 있습니다. 몇 가지 예는 여기에 내가 발견 하나, 거기이의가 있습니다 https://github.com/ramr/nodejs-custom-version-openshift/blob/master/.openshift/action_hooks/build

를가 사용자를 대신 비활성화npm install 실행할 수 없습니다 있다면, 아마도 당신은 가짜 package.json을 제공하여 주위에 해킹 수있는 당신 ' d 빌드 단계 이전에 스왑 아웃하면 npm install이 no-op가됩니다. 최고는 아니지만 적어도 앞으로 나아갈 수 있습니다.

+0

당신은 정말로 내 하루를 보냈습니다 - 감사합니다! https://github.com/ramr/nodejs-custom-version-openshift/blob/master/.openshift에서 모든 파일을 복사하면됩니다 그래서 그는 배포 용으로 nhpm의 freh 버전을 설치합니다! – mdunisch

+0

좋아요! 당신이 작동하게되어 기쁩니다. – dylants

+0

일부 npm 모듈은 실제로 바이너리를 빌드하고 플랫폼 의존적이기 때문에 자식에게'node_modules'를 추가하면 문제를 일으킬 수 있습니다. 또한 적절한 양의 모듈을 가지고 있다면 repo가 ​​커지게됩니다. – twiz