[React] npm으로 라이브러리(모듈) 설치/삭제하기
npm은 Node.js 표준 패키지 관리도구라고 하였다. 이제 이 npm을 통해서 여러가지 라이브러리(=모듈)을 설치할 수 있다.
로컬 모듈 설치하기
현재 디렉터리에 설치되는 모듈을 로컬모듈이라고 한다.
npm install <모듈 이름>
request 라이브러리를 설치해보자.
command창에서 아래 명령어를 입력한다.
$ npm install request
root-ui-MacBook-Air:~ root$ npm install request
npm WARN saveError ENOENT: no such file or directory, open '/Users/root/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/Users/root/package.json'
npm WARN root No description
npm WARN root No repository field.
npm WARN root No README data
npm WARN root No license field.
+ request@2.87.0
added 46 packages in 3.85s
package.json 파일이 없다는 에러가 발생하긴 하였지만 + request@2.87.0 을 보면 request 모듈은 정상적으로 설치되었다는 것을 알 수 있다.
npm을통해 설치된 모듈들은 npm이 설치된 디렉토리/node_modules 에 다운로드된다.
아래 request 모듈이 다운로드 되었음.
로컬 모듈 제거하기
npm uninstall <모듈 이름>
전역 모듈 설치하기
현재 디렉터리가 아닌 머신 전체에서 공유할 수 있는 도구 또는 라이브러리를 설치할 때 사용된다.
npm으로 전역 모듈을 설치할 때에는 어느 디렉토리에 설치될까? 아래 명령어를 입력하여 설치될 디렉터리를 확인해보자.
$ npm root -g
/Users/yunsoyeon/.nvm/versions/node/v8.11.2/lib/node_modules
로컬 모듈로 설치했던 request를 전역 모듈로 설치해 보자.
$ npm install -g request
전역 모듈 제거하기
npm uninstall -g <모듈 이름>
참고사항
전역으로 모듈을 설치했음에도 불구하고 아래와 같은 에러가 발생할 수 있다.
Error: Cannot find module 'colors' at Function.Module._resolveFilename (module.js:547:15) at Function.Module._load (module.js:474:25) at Module.require (module.js:596:17) at require (internal/module.js:11:18) at Object.<anonymous> (C:\Users\201711306\workspace\index.js:1:78) at Module._compile (module.js:652:30) at Object.Module._extensions..js (module.js:663:10) at Module.load (module.js:565:32) at tryModuleLoad (module.js:505:12) at Function.Module._load (module.js:497:3) |
이럴 경우 NODE_PATH 환경변수에 npm 경로를 추가해주어 문제를 해결할 수 있다.
npm 경로는 아래 명령어로 확인할 수 있다.
$ npm root -g
- macOS/Ubuntu 환경일 경우
$ echo export NODE_PATH=$(npm root -g) >> ~/.bashrc
$ source ~/.bashrc
- Windows 환경일 경우
시스템 -> 고급 시스템 설정 -> 환경 변수 버튼 클릭
시스템 변수에 위 경로를 추가해준다.
나는 윈도우 환경에서 위와 같이 시스템 변수를 추가해주었음에도 동일하게 해당 모듈을 찾지 못한다는 에러가 발생하였다.
그럴 경우 cmd 창을 관리자 권한으로 실행해주면 된다.