티스토리 뷰

※ npm (Node Package Manager)

  • 외부 패키지(모듈)을 npm 서버에서 다운로드해서 사용할 수 있도록 관리 
  • npm 서버에서 패키지 검색할 수 있음 
  • node.js를 설치하면 npm 명령어도 같이 설치됨 (확인 명령어: npm -v)

https://www.npmjs.com/

 

npm

Bring the best of open source to you, your team, and your company Relied upon by more than 11 million developers worldwide, npm is committed to making JavaScript development elegant, productive, and safe. The free npm Registry has become the center of Java

www.npmjs.com

 

※ package.json (협업 시 매우 중요한 파일)

외부 모듈(패키지)를 관리하기 위해 반드시 필요함 

- npm으로 설치한 패키지들을 관리하는 파일 

- 생성 방법 : npm init 

예시) ES6 모듈을 사용하기 위해 type을 설정해야 함.

 

※ 패키지 설치 및 삭제 ★★★

① 프로젝트별 설치 

  • npm install --save 패키지명
  • npm install  패키지명 (npm 버전5부터 --save는 생략가능)
  • npm i 패키지명 

 

예시) npm install express

설치 결과) package.json

 

주의) 협업할 때 git 저장소에는 node_modules를 공유하지 않는다. 

package.json과 package-lock.json에 저장된 버전 "그대로" 사용한다. 

✔️ 그럼 이 설정 그대로 설치하는 방법은 무엇일까? 

=> npm install 

 

② 프로젝트별 개발용 패키지 설치 (배포시에는 포함되지 않고, 개발 중에서만 사용)

  • npm install --save-dev 패키지명 
  • npm install -D 패키지명 

③ 전역(프로젝트 공용) 패키지 설치 

  • npm install --global 패키지명 
  • npm install -g 패키지명 
  • mac: /usr/local/lib/node_modules

주의) 협업할 때는 버전차이가 발생할 수 있기 때문에 전역 설치는 되도록 피한다. (PC마다 각각 설치하면 버전 차이 발생 가능성)

왜? 전역 패키지는 package.json 에 기술되지 않는다. 즉, npm install 명령어로 전역 패키지가 설치되지 않는다. 

④ package.json에 기술된 모든 패키지 설치 

=> npm install 

Git 사용시 node_modules 폴더는 .gitignore에 포함시켜 제외시킴

package.json  협업시 중요한 파일

⑤ 전역 패키지로 설치하지 않고, 사용하는 방법 

npm install -D 패키지 

npx 명령어 

 

보통 전역 패키지에는 명령어들이 포함되어 있음

npx 붙여서 실행하면 됨

 

⑥ 패키지 삭제 

npm uninstall 패키지

npm uninstall --global 패키지 

 

⑦  package-lock.json 파일 

: "의존 모듈의 버전"을 관리하는 곳 

lock ==> 모듈의 버전을 수정하지 못하도록 잠근다는 의미 

 

※ bcrypt 패키지 

  • npm install bcrypt
// 너는 npm에서 설치한 외부 모듈 bcrypt이다. 
// API 사용법을 찾아보면 require뒤에 promises 붙이지 않아도 된다. 
const bcrypt = require("bcrypt");

(async () => {
    try{
        const cryptedPassword = await bcrypt.hash("12345", 12);
        console.log(cryptedPassword);
        const result = await bcrypt.compare("12345", cryptedPassword);
        console.log("Result: " + result);
    }catch(err){

    }
})();