* 이 포스트는 "생활코딩 egoing님의 node강좌" 를 보고 정리하는 개인적인 포스트입니다.



[참고/출처]

https://opentutorials.org/course/2136/11854


강의를 보던 중 잠깐 패키지를 다운받기 전 npm으로 의존성을 관리할 수 있는 package.json 파일을 생성하는 부분이 나왔다.

내용이 조금 부족하여 구글링을 추가하여 ㅎㅎ 정리해 보도록 한다.


요즘같은 경우는 npm없이 node를 사용하기란 상상할 수 없는 일이기도하고 , 

npm에 있는 수많은 모듈들을 가져다 사용하고 있기때문에 npm모듈들의 의존성관리를 해줄 필요가 있다.


npm은 프로젝트에 대한 설정을 package.json이라는 파일에 의존하고 있기 때문에 이 파일에 JSON형식으로 작성해서 

프로젝트에 대한 관리를 할 수도 있지만 , npm 에는 손수 json파일을 작성하지 않아도 package.json 파일을 생성해 주는 

명령어가 있다.


그럼 npm 명령어로 package.json 파일을 만들어보자. 명령어는 아래와같다.


  

[user@server home/mingcho/node_test] # npm init



위와 같이 명령어를 입력하면..



[user@server home/mingcho/node_test] # npm init


This utility will walk you through creating a package.json file.

It only covers the most common items, and tries to guess sensible defaults.


See `npm help json` for definitive documentation on these fields

and exactly what they do.


Use `npm install <pkg> --save` afterwards to install a package and

save it as a dependency in the package.json file.  


Press ^C at any time to quit.

name: (node)      //패키지명. 엔터를 치면 괄호안의 이름으로 등록된다.

version: (1.0.0)            //엔터

description: node test     

//해당 프로젝트에 대한 설명. 안써도 상관은 없지만 안쓰면 우리를 귀찮게 하는일이 발생한다고..!

entry point: (hellow.js)  //우리의 패키지를 구동시키는 자바스크립트이다.

생략가능하지만 없지만 추후에 프로젝트가 복잡해진다면 이 항목을 정의하도록하자!

test command:              //추가로 실행할 스크립트 명령어를 정의하는거라는데 아직잘모르겟으니 Pass

git repository:              //git 저장소 URL. 이것도 Pass

keywords:                     //npm search 명령으로 패키지를 찾을 수 있도록 도와주는 키워드. Pass

author:                         //프로젝트 작성자이름.Pass

license: (ISC)               //프로젝트 라이센스.Pass

Is this ok? (yes)          //엔터!



이렇게 만들면 현재 경로 아래 package.json 이라는 파일이 하나 생겼다.

이제 폴더에 package.json 파일만 넣고 npm install 명령어를 치면 package.json 파일에 있는 dependencies와 

devDependencies에 있는 모듈을 자동으로 탐색하여 설치해 줄 것이다.


다른 임의의 프로젝트를 하나 더 생성한 후 package.json 파일을 옮겨보자.


  

[user@server home/mingcho] # cp ./node_test/package.json ./node_test2/package.json



새로생성한 프로젝트에 package.json 파일이 생성되었다면 package.json 파일이 생성된 폴더에서 

npm install 명령어를 치면 내가 dependencies에 등록했던 모듈들이 자동으로 설치되는 것을 볼 수 있다.


이렇게 package.json 파일을 만들었으면 이제 내가 사용할 모듈들의 의존성 관리를 할 수 있다.

그런데 모듈들을 설치할 때마다 package.json 에 따로 등록해주는 일은 귀찮은 일이다.

이때 모듈을 설치할 때 마다 package.json에 자동으로 등록해 주는 옵션이 있다.


먼저, 옵션을 쓰지 않고 모듈을 설치 해보자.


  

[user@server home/mingcho/node_test] #  npm install uglifyjs

├── uglifyjs@2.4.10  extraneous



그럼 아래와같이 extraneous 라고 뜬다. (extraneous: 이물질, 외부의, 부가적인)

이 경우에는 모듈이 설치는 되지만, package.json 에는 등록이 되지 않는다. 

일시적으로 현재 프로젝트에서만 단발성으로 사용할 모듈은 이렇게 설치해 주면 될 것 같다.


그럼 --save 옵션을 사용하여 설치해보자.


  

[user@server home/mingcho/node_test] #  npm install uglifyjs --save



이 경우 extraneous 가 뜨지않는다. 이후 package.json 파일을 확인해보면

아래와 같이 등록이 된 것을 확인 할 수 있다.



  "dependencies": {

    "uglifyjs": "^2.4.10",

    "underscore": "^1.8.3"

  }




[참고] npm update 로 모듈의 버전들을 업데이트 할 때 package.json 에 내가 업데이트 하고싶은 버전의 범위를 지정해 놓을 수도있다. 



+ Recent posts

티스토리 툴바