본문 바로가기
NodeJS, Koa, NPM

NPM 의 package.json을 이용한 효율적 설치 방법 #NodeJS

by Developer88 2020. 3. 21.
반응형

NPM을 이용해서 express같은 모듈을 설치하게 되는데요.

매번 프로젝트를 생성할 때마다 자주쓰는 모듈을 설치하는 것이 여간 번거로운일이 아닙니다.

매번 필요한 모듈 들을 찾아서 설치하는 것도 쉬운일이 아니구요.

 

오늘은 package.json을 이용해서, 자주쓰는 모듈을 한번에 설치하는 방법에 대해서 정리해 보겠습니다.

 

1. npm 기본 명령어들

 

항상 npm --version 을 통해서, npm버전은 확인해 주시어야 합니다.

 

npm --version

현재 버전은 6.14.3이 나오는 군요.

 

 

NodeJS의 핵심인 모듈을 관리해주는 NPM을 항상 업데이트 해놓는 것은 매우 중요합니다.

버전이 구버전이라면, 아래 명령어를 통해서 업데이트 해주세요.

 

sudo npm install npm -g 

 

이제 npm 초기화를 해주고, 해당 프로젝트 디렉토리에서 package.json을 설치해야 하는데요.

아래 명령어를 입력해주면 됩니다.

>> npm init

 

입력후, name이나  version등을 입력해주면 되는데요.

저는 TestNpm이라는 이름을 사용하였습니다.

참고로 테스트용 프로젝트등에서는 아래 명령어를 사용하면, 

디폴트값으로 초기화 됩니다.

 

npm init --yes

 

이제 package.json을 열어보면 아래와 같이 설정되어 있는 것을 볼 수 있습니다.

 

 

NPM 패키지를 설치할 때는 아래와 같은 명령어를 사용해 주면 됩니다.

 

npm install <package_name> 

 

 

예를 들어, body-parser의 경우

npm install body-parser가 되겠네요.

이 때, 뒤에 @버전을 붙이면 설치할 패키지의 버전을 지정해 줄 수 있습니다.

npm install body-parser@1.17.1

 

최신 버전에서 이슈가 있다든지 하다면, 이렇게 버전을 지정해 피해줄 수 있을텐데요.

최근버전이 1.17.2라면, 1.17.1로 써서 다운그레이드 할 수 있겠지요.

이런 방식으로 다운그레이드가 가능하기도 합니다.

 

 

2. Dependency 추가하기

 

NPM모듈을 설치할 때, 그냥 npm install <package_name> 만 하게되면,

package.json에 포함되지 않습니다.

--save 옵션을 아래와 같이 추가해서, 명령어를 입력해 주어야 dependency가 추가됩니다.

 

npm install <package_name> --save

 

3. 자주 쓰는 모듈 package.json이용해서 한번에 설치 및 업데이트

 
이번에는  자주쓰는 모듈들을 미리 정의해 놓고 설치해 보겠습니다.
아래가 제가 자주 사용하는, 다른 프로젝트 파일에 있는 package.json의 dependecies들인데요.
이 파일을 이용해서 모든 모듈을 한번에 설치할 수 있습니다.
아래 dependecy들을 package.json파일에 붙여 넣겠습니다.

 

 
"dependencies": {
    "body-parser": "^1.17.2",
    "cheerio": "^1.0.0-rc.1",
    "compression": "^1.6.2",
    "express": "^4.15.3",
    "jade": "^1.11.0",
    "morgan": "^1.8.2",
    "mysql": "^2.13.0",
    "pug": "^2.0.0-rc.2",
    "realm": "^1.8.0",
    "request": "latest",
    "rxjs": "^5.4.1"
  }

 

위와 같이, package.json에 dependency를 추가했다고 끝나는 것은 아니구요.

아래 명령어를 입력해 주어야 합니다.

 

npm install

 

각 버전이 오래되었을 수도 있으므로, 업데이트도 함께 진행하겠습니다.

 

npm update

 

 

위의 모듈들중에  필요하지 않은 모듈들은 지워주도록 하겠습니다.

ex> npm uninstall mysql

 

npm uninstall <packagename> 

 

 

참고로, 여러개의 모듈들이 필요하지 않을때는,

dependecy에서 제거해준다음,

아래 명령어를 입력해주어도 package.json에 나와있는데로 다시 설치해 줍니다.

>>npm install

 

 

4. 글로벌 모듈의 설치와 연결

 

위에서 dependecy를 이용해서,

필요한 모듈들을 설치하는 것을 보았는데요.

위의 방법은 모듈들을 해당프로젝트에 local로 설치하는 것이구요.

 

글로벌 모듈은 -g옵션을 사용해서 설치를 합니다.

대표적인 모듈인 express의 경우 아래와 같습니다.

>> sudo npm install express -g

 

설치된 글로벌 모듈들은 아래 명령어를 통해서 볼 수 있는데요.

 

>>npm list -g --depth=0

 

아래와 같이 설치된 글로벌 모듈이 보입니다.

 

 

중요한 것은, 글로벌로 설치되어 있다면, local로 재설치할 필요는 없지만,

설치되어 있다고 바로 require해서, 사용할 수 있는 것은 아닙니다.

 

그러면, 어떻게 하면 될까요?

해당 프로젝트의 디렉토리에서, 아래의 명령어를 사용하여 link 시켜주면 됩니다.

 

>>npm link <PackageName>

 

ex)sudo npm link express

 

 

그리고, 글로벌 모듈에 대해서도 틈틈히 업데이트를 해주어야 하는데요.

아래 명령어를 통해서 해주면 됩니다.

 

>>sudo npm update -g <PackageName>

업데이트를 해 보니,

아래와 같이  4.17.1로 업데이트 된 것을 볼 수 있네요.

 

5. NPM cache Clean

 

NPM 모듈이 업데이트 이후 정상적으로 동작하지 않을 경우,

cache를 지우고 모듈도 제거한 이후 다시 재설치 하는 것도 하나의 방법일 수 있습니다.

 

NPM의 cache를 지우는 명령어는 아래와 같습니다.

 

npm cache clean

 

캐시를 지우고, npm uninstall명령어를 통해 모듈을 삭제후,

재설치 해보아도 동작하지 않을 경우, 다른 문제를 의심해 볼 수 있습니다.

728x90

댓글0