Npm이란과 명령어 정리

Posted by HULIA(휴리아)
2017. 11. 5. 12:55 백엔드개발/NODEJS
정의
NPM(nodejs package manager)


공식사이트
https://npmjs.org/


유명한 모듈명들
-lodash
-request
-async
-chalk
-express
-bluebird
-commander
-debug
-react

유명한 npm install 모듈
-browserify
-grunt-cli
-bower
-gulp
-grunt
-express
-cordova
-forever

알아둘 개념
-전역모드 VS 지역모드
전역모드 설치시 
/usr/local/lib/node_modules
c:\Users\%USERNAME%\AppData\Roaming\npm\node_modules
에 모듈이 저장된다
****그래서 npm install 하기 전에 반드시 폴더를 만들어야 한다

모듈 설치
npm install 모듈명@모듈버젼
-g옵션 : 전역모드로 설치
--save옵션 : package.json에 모듈명 업데이트(추가개념)
ex)npm install -g express@1.5x

모듈 삭제
npm uninstall 모듈이름
-g옵션 : 전역모드로 삭제
ex)npm uninstall -g express

모듈 업데이트
npm update 모듈명
-g옵션 : 전역모드로 업데이트
ex)npm update -g express


package.json(여러가지 모듈 일괄 설치 설정 파일)으로 의존성관리
기본적으로 프로젝트 생성시에 포함되어있지만 수동으로 package.json을 파일을 만들려면 npm init 명령어를 통해서 만들수 있다

package.json의 구조
{
"name" : 해당 모듈의 이름을 정의한다.  (이름에 'node' 나 'js' 가 들어가면 안된다.) 
"version" : 해당 모듈의 버전을 정의한다.
"description" : 해당 모듈의 추가적인 설명을 정의한다.
"main" : node에서 해당 package.json 을 탐색할 때 기준이 되는 파일 이름을 정한다.  기본적으로 index 로 
           설정이 되며, 생략이 가능한 부분이지만 추후 프로젝트가 복잡해진다면 이 항목을 정의 할 필요가 있다. 
"scripts" : package.json 이 있는 폴더에서 추가로 실행 할 스크립트 명령어를 정의한다. 노드 명령이나 
             쉘 스크립트  를 적어주면 된다.  
             현재 기본적으로 test 가 정의 되어있는데 해당 package.json 이 있는 폴더에서 
             npm run test 를 실행하면 Error: no test specified 라는 콘솔 메시지가 나타날 것 이다. 
"author" : 해당 모듈의 제작자를 정의한다.
"liecnse" : 해당 모듈의 라이센스를 정의한다.
"dependencies" : 일반적으로 package.json 에 가장 많은 정보가 입력되는 곳 이며 여기서 모듈의 의존성을 
                       정의 한다. 현재 아까 설치한 express 가 지정 되어있고 해당 모듈이름과 버전을  키 : 값 의 
                       형식으로 정의 되어있다.  여기서 추가로 모듈을 설치하고자 한다면 패키지이름 : 값  의 
                       형식으로 적어주면 된다. 
"devDependencies" : 해당 모듈의 실행에 필요한 또는 개발에 필요한 모듈의 의존성을 입력하는 곳 이다. 
}

package.json를 이용하여 모듈설치
package.json파일이 있는 곳에서 npm install을 입력
node_modules라는 폴더에 모듈이 설치됨


설치된 모듈확인
지역:npm ls
전역:npm ls -g --depth=0