처음 개발을 배울 때 강의를 통해서 배우다보면 npm 명령어를 이용해서 뭐 이것저것 다운을 받아 보셨을 겁니다.
근데 확실하게 알고 npm 명령어를 사용하셨나요?
일단 저는 아니었습니다. 그래서 npm 에 대해서 알아 보았습니다.
npm 은 node package manager 의 약자 입니다.
개발할때 다양한 모듈이 필요한데 이 모듈을 직접 코드를 작성하여 만들지 않고 전세계의 개발자들이 이미 만들어놓은 모듈을 다운 받아서 바로 사용할 수 있게 도와주는 도구 입니다.
npm 은 node.js 를 설치하면 같이 설치가 되기 때문에 만약 node.js 가 설치되어 있지 않스디다면 node.js 공식 홈페이지에 들어가셔서 node.js 를 설치 하세요.
설치가 완료 되었다면
node -v // 노드의 버전을 확인하는 명령어
npm -v // npm 의 버전을 확인하는 명령어
위 두개의 명령어를 터미널에 입력해서 버전이 잘 나온다면 성공적으로 설치가 완료된 것 입니다.
프로젝트에 대한 정보를 가지고 있는 파일 입니다. 이 파일은 직접 작성할수도 있고 npm init 명령어를 통해서 자동으로 파일을 생성할수도 있습니다.
package.json 파일을 구성하고 있는 대표적인 속성을 알아보도록 합시다.
사용자가 사용하기 위해서 npm 명령어를 통해 다운받은 모듈 파일이 실제로 저장되어 있는 폴더이다. 사용자가 다운받은 모듈 뿐만 아니라 다운받은 모듈을 의존하고 있는 모듈까지 자동으로 node_modules 폴더에 설치 합니다.
사용자가 프로젝트에 필요해서 설치한 모듈들의 의존성 트리를 기록하는 파일 입니다. package.json 파일을 참고하여 node_modules 폴더에 설치 합니다.
자주 사용되는 npm 명령어를 알아보도록 하겠습니다.
npm init : 새로운 프로젝트를 시작할때 package.json 파일을 생성하기 위해서 해당 명령어를 사용 합니다. 해당 명령어를 입혁하면 자동으로 package.json 파일을 생성 합니다.
npm init -y : -y 를 사용하면 기본값으로 package.json 파일을 생성 합니다.
npm install 패키지명 : 작성한 패키지를 설치하는 명령어 입니다.
패키지, 모듈, 라이브러리는 같이 말이라고 생각하시면 됩니다.
npm i 패키지명으로 install 을 줄여서 사용할수도 있습니다.
npm install 패키지명@버전번호 : 가끔 설치 받은 패키지가 버전이 맞지 않아서 예상과 다른 결과를 볼수도 있습니다. 그렇기 때문에 특정 버전을 설치해야 한다면 @버전번호를 직접 작성하여 원하는 버전을 다운 받을 수 있습니다.
npm install -save : -save 를 사용하면 dependencise 에 해당 패키지가 추가 됩니다. -S 로도 줄여서 사용 가능 합니다. npm 5 버전부터는 -save 를 적지 않아도 디폴트로 적용되어 자동 적용 됩니다.
npm install --save-dev : --save-dev 를 사용하면 devDependencise 에 추가 됩니다. -D 로도 줄여서 사용 가능 합니다.
npm install(i) 패키지명1 패키지명2 ... : 다운받고 싶은 패캐지를 여러개 작성하여 다운 받을 수 있습니다.
npm install -g 패키지명 : 전역 설치를 진행 합니다.
npm install : package.json 을 참고하여 모든 패키지를 다운 받습니다.
npm install --production : package.json 의 devDependencies 를 제외한 모든 패키지를 다운 받습니다.
npm uninstall 패키지명 : 해당 로컬 패키지를 삭제 합니다.
npm uninstall -g 패키지명 : 해당 전역 패키지를 삭제 합니다.
npm update 패키지명 : 해당 패키지의 버전을 업데이트 합니다.
npm start : package.json 파일의 script 속성에 작성한 start 를 실행 합니다.
npm run 스크립트 이름 : package.json 파일의 script 속성에 작성한 스크립트 이름을 실행 합니다.
시스템 상에서 해당 라이브러리의 명령어를 사용 가능하게 하고 싶다면 전역 설치를 하면 되고 프로젝트에서만 사용하는 라이브러리라면 지역 설치를 하면 된다.