2016-09-21 2 views
3

npm install을 수행하는 동안 -g을 추가하여 노드 모듈을 로컬 수준 또는 글로벌 수준으로 설치할 수 있습니다.전역 모듈이 호출되는지 또는 로컬인지 확인하는 방법?

모듈 (예 : mocha)이 로컬 및 전 세계적으로 설치되어있는 경우 어떤 모듈이로드 될 때 require("mocha"); 일 때로드됩니까?

그리고 지금 노드의 실행 환경에서 어떤 노드가로드되었는지 어떻게 알 수 있습니까?

$ export NODE_DEBUG=module 

를 다음 명령을 실행 : 다른 모든 실패하면

+0

프로젝트가 실행될 때 로컬에서 먼저 응용 프로그램을 검색하고 찾으면이를 사용합니다. Dependencies와 libs에 몇 가지 설정을 할 수있는 package.json 때문에 이런 식으로 생각합니다. –

+0

코드에서 확인할 수는 없지만 package.json 파일에서는 확인할 수 없다고 생각합니다. –

답변

1

노드는 먼저 로컬 모듈을 검색하고 거기 올바른 모듈을 찾을 수없는 경우 - 여기에서 볼 수 있듯이 그것은 다른 곳에서 검색 진행 : https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders

당신이 결정하는 require.resolve('mocha')을 사용할 수 있어야합니다 현재로드 된 모듈의 위치 그렇게하면 어느 것이로드되었는지 알 수 있습니다. 그것이 당신의 프로젝트 디렉토리 아래에 있다면 - 그것은 로컬입니다 - 그렇지 않으면 그것은 글로벌입니다.

+0

고마워, 'require.resolve'는 나를 위해 해줬습니다. – gurvinder372

1

, 당신은 사용할 수 있습니다. 이렇게하면로드하는 모든 모듈과 그 모듈의 출처에 대한 자세한 로그가 제공됩니다. 당신은 단지 하나의 명령을 원하는 경우

, 당신은 실행할 수 있습니다

$ NODE_DEBUG=module <command> 

유일한 경고는이 정보의 많은를 표시한다는 것입니다. 그래서 grep은 당신의 친구입니다.

+0

감사합니다. 도움이되었습니다. – gurvinder372

관련 문제