npm install 시 module 이 설치되는 경로
npm module path
npm install 시 global 옵션으로 설치하지 않았을 경우 node package 는 일반적으로 $HOME/node_modules/ 하단에 설치됩니다.
예로 다음처럼 vue-cli 를 설치했을 경우
npm install vue-cli
$HOME/node_modules/vue-cli 에 설치되고 패키지 정보는 .npm/vue-cli/ 에 기록되며 실행 파일에 대한 symbolic links는 node_modules/.bin/ 에 생성됩니다.
npm 으로 모듈을 설치할 때 많이 만나게 되는 에러는 설치한 모듈을 찾을수 없다는 에러이며 npm 이 모듈을 찾을 때 참고하는 환경 변수인 NODE_PATH 를 shell 초기화 파일(Ex: ~/.bash_profile) 에 설정해 주면 됩니다.
export NODE_PATH =$PATH:$HOME/node_modules/
node 로 설치한 실행 파일을 못 찾을 경우 PATH 환경 변수를 업데이트해 주면 됩니다.
export PATH=$PATH:$HOME/node_modules/.bin/
global 옵션 사용시
모듈 설치시 -g 옵션을 주면 global 로 설치되는데 대체 global module 디렉터리가 어디인지 헷갈리는 경우가 많습니다. 다음과 같이 root -g 명령으로 global 모듈 경로를 확인할 수 있습니다.
$ npm root -g /usr/local/lib/node_modules
일반적으로 global module 은 root 권한이 있어야 하므로 global 설치는 권장하지 않지만 가끔 패키징이 잘못 되었는지 일반 사용자로 설치해도 권한이 없다고 나오는 경우가 있습니다.
이럴 경우 prefix 를 변경해 주면 root 폴더를 바꿀 수 있습니다. 예로 다음 명령어는 root 폴더를 HOME 밑에 .node_modules 로 변경합니다.
npm config set prefix ${HOME}/.node_modules
이제 다음과 같이 global 옵션으로 설치하면 ${HOME}/.node_modules/ 에 모듈이 설치되고 실행 파일(Ex: vue-cli) 은 ${HOME}/.node_modules/bin 에 symbolic link 가 생기는 것을 확인할 수 있습니다.
$ npm i -g vue-cli
$ ls -la .node_modules/bin/ total 8 drwxr-xr-x 2 lesstif rnd 4096 Jan 14 18:24 . drwxr-xr-x 4 lesstif rnd 4096 Jan 14 18:24 .. lrwxrwxrwx 1 lesstif rnd 35 Jan 14 18:24 vue -> ../lib/node_modules/vue-cli/bin/vue lrwxrwxrwx 1 lesstif rnd 40 Jan 14 18:24 vue-init -> ../lib/node_modules/vue-cli/bin/vue-init lrwxrwxrwx 1 lesstif rnd 40 Jan 14 18:24 vue-list -> ../lib/node_modules/vue-cli/bin/vue-list
이제 root 를 변경했을 경우 PATH 환경 변수에 다음 내용을 추가하면 됩니다.
export PATH=$PATH:$HOME/.node_modules/bin/