2012-08-30 4 views
5

pkg 설치 프로그램에서 node.js v0.8.8을 설치하고 소스에서 컴파일했습니다. 그러나 npm을 실행하려고하면 다음 오류가 발생합니다. 어떤 도움을 주시면 감사하겠습니다.Mac OS X npm에서 node.js "오류 : 해당 모듈 없음"

> $ npm --help 
> 
> /usr/lib/node_modules/npm/lib/utils/config-defs.js:5 , stdio = 
> process.binding("stdio") 
>     ^Error: No such module 
>  at Object.<anonymous> (/usr/lib/node_modules/npm/lib/utils/config-defs.js:5:21) 
>  at Module._compile (module.js:449:26) 
>  at Object.Module._extensions..js (module.js:467:10) 
>  at Module.load (module.js:356:32) 
>  at Function.Module._load (module.js:312:12) 
>  at Module.require (module.js:362:17) 
>  at require (module.js:378:17) 
>  at Object.<anonymous> (/usr/lib/node_modules/npm/lib/utils/ini.js:43:18) 
>  at Module._compile (module.js:449:26) 
>  at Object.Module._extensions..js (module.js:467:10) 
+1

Hehehe, "no suck module" 그것을 수정하지 마십시오. :) –

답변

3

어떻게 든 오래된 NPM 버전을 사용하고 있습니다. 참조 : npm issue

+3

감사합니다. git repo (git : //github.com/isaacs/npm.git)를 복제 한 다음 수동으로/usr/lib/node_modules/npm 및/usr/bin/npm을 모두 제거해야했습니다. *) 다음에 "sudo make install"을 실행하십시오. –

+0

허 ... 내가 src에서 컴파일했을 때 노드가 npm 바이너리를 덮어 쓰지 않은 이유가 궁금합니다 ... – xen

9

정확히 동일한 문제가 Node.JS 0.4에서 0.8로 업그레이드되었습니다.

OSX Node.JS 패키지 설치 프로그램은/usr/bin에있는 기존 0.4 npm 설치를 실수로 제거하지 않고/usr/local/bin에있는 새로운 0.8 설치와 충돌합니다. 그것은 이미있는 것을 덮어 씁니다. 는 설치 한 후하는 which npm가 제대로 /usr/local/bin/npm을 반환하더라도 : 나는 그것을 삭제하여 이전을 핵 공격하지만, 확인, 나는 새로 좋을 것이다 설치했다 :

curl https://npmjs.org/install.sh | sudo clean=yes sh

이 마지막 문제가 발생했습니다 bash는/usr/bin에서 계속 실행을 시도했습니다. 이는 OSX에서 bash가 실행 파일 이름을 해시했기 때문입니다. 해싱은 일반적인 프로그램을 실행할 때마다 PATH의 모든 디렉토리에 대한 반복 된 검색을 저장합니다. 명령 줄에서 hash -r이이 문제를 해결했습니다.

+1

노드 0.4에서 0.10으로 업그레이드되지 않았습니다. – SimplGy