2012-11-20 2 views
34

전체 경로를 작성하지 않으면 node.js 모듈 (-g 플래그 사용)의 전역 설치를 수행했을 때 노드가 해당 모듈을 사용할 수 없다는 것을 알게되었습니다. 내 말은node.js modules path

,이 모듈이 전 세계적으로 설치 한 경우 작동하지 않습니다

cheerio = require('cheerio'), 

을 내가 그 작성해야 : 나는에 가지고 노드로 말할 수있는 방법

cheerio = require('/usr/lib/node_modules/cheerio'), 

을 올바른 방향에서 모듈을 찾으십니까?

감사합니다.

+5

윈도우 8.1에서 테스트 우리 (또는 일부) 프로젝트 폴더에 모듈을 설치 대부분의 패키지 의존성으로 모듈을 추가하여 .json. 배포하는 동안 소스 코드를 업로드하고 서버에 모듈에 대한 npm 설치를 수행하거나 전체 프로젝트 폴더를 배포 할 수 있습니다. 장점은 다른 프로젝트를 돌보는 데 의존 할 필요가 없다는 것입니다. 나는 자바가 아니라 노드에 대한 lib 디렉토리를 중앙화 할 것이다. – wayne

답변

46

, 내가시키는 제안 NPM 당신에게 경로를 제공하고 설정하는 것이 위에서 언급 한 바와 같이 : 사람들의

$ echo 'export NODE_PATH="'$(npm root -g)'"' >> ~/.bash_profile && . ~/.bash_profile 
+0

'npmrc '설정에'loglevel = info' (또는 자세한 내용)가 있으면이 방법이 작동하지 않을 것이라고 생각합니다. 그러므로주의하십시오. 그것의. '$ (npm root -g)'를'$ (npm root -g 2/dev/null)'로 변경하는 것이 더 나을지 모르지만, 특정 쉘에서만 STDERR 리다이렉션을위한 구문을 따르기 때문에 여전히 보편적이지는 않습니다. . – BotNet

+0

'-bash : /Users/abc/.nvm/nvm.shexport : 해당 파일이나 디렉토리가 없습니다. ' –

+1

이 명령을 사용하면 NVM이 실행되지 않습니다 !!! –

15

당신은 ~/.bash_profile에 다음을 추가 할 수 있습니다 일반적으로

export NODE_PATH=/usr/lib/node_modules:$NODE_PATH 
+3

http://nodejs.org/api/modules.html#modules_loading_from_the_global_folders 참조 –

6

zsh을 설치 : 윈도우 놀이터에서 사람들을 위해

echo 'export NODE_PATH="'$(npm root -g)'"' >> ~/.zshrc && . ~/.zshrc

14

TForm의 시스템 변수에서 PATH이 추가 :

C:\Users\<username>\AppData\Roaming\npm 

PS를 : 노드

+2

Users \와 \ AppData 사이에 "UserName"을 포함해야합니다. 이 설정은 usser 시스템 변수에 포함되어야합니다. 그런 다음 닫기 세션이 필요하고 콘솔에서 변경 사항을 확인하기 위해 다시 시작하십시오. – edrian

+0

필자의 경우 Windows 8.1을 실행하면 'npm'이 아닌 'npm-cache'였습니다. –

+1

@edrian 실제로 "태그"가 제거 된 코드로 표시하지 않기 때문에 원래 응답에 자리 표시자가 있습니다. 이제는 –