npm

* 이 포스트는 "생활코딩 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 에 내가 업데이트 하고싶은 버전의 범위를 지정해 놓을 수도있다. 



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



[참고/출처]

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


underscore 모듈은 100가지 이상의 유용한 함수들을 제공하는 편리한 모듈입니다.

www.npmjs.com 에서 underscore를 검색해서 들어가면 underscore의 홈페이지가 나옵니다. underscore 라이브문서

위 홈페이지에서 underscore의 유용한 함수들의 사용법을 볼 수 있습니다.


홈페이지에서 installation 항목을 보면 플랫폼별 설치법이 나와있다. 

나는 node를 공부중이니 npm으로 설치를 한다.


  

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



(이렇게 underscore 모듈을 로컬설치를 했는데 window에서는 현재경로 안에 잘 설치가됐는데 

linux 환경에서 설치하니 프로젝트 하위경로가 아닌 최상위 /home 폴더 아래 모듈이 자꾸 설치가 된다.ㅠㅠ

찾아보니 가끔 이런경우가 있다고 한다. 이럴경우에는 현재 경로 안에 node_modules 라는 폴더를 하나 만들어 주면된다고 한다. 만들어주니 현재경로 안에 로컬설치로 잘들어간다.ㅎㅎ 해결!!)


설치가 다 됐으니 사용해보도록 하장!

underscore.js 파일을 하나 만들어서 간단한 기능들을 사용해 보기로한당.



이와 같이 테스트 해보았다.

직접 스크립트 함수를 이용해 배열의 마지막값을 구한 것 보다 훨씬 가독성이 있다.

underscore 의 다른 다양한 함수들은 다음기회에 다시한번 사용해보고 쓸만한 기능이 많다면 다시한번 포스팅하는걸로!!




* 이 포스트는 Linux 환경에서 작성되었습니다.

[참고] https://blog.outsider.ne.kr/638


NPM : Node Package Manager


npm 설치 및 업그레이드



docs.npmjs.com에서 다양한 npm 사용법을 확인할 수있다.


오늘은 npm으로 모듈을 설치해보기전, 간단한 사용법 정리!




npm으로 모듈 설치하기


 npm으로 모듈을 설치하는 방법에는 아래의 두가지 방법이 있습니다.


 

 [user@server home] # npm install -g 패키지명             //글로벌설치

 

 [user@server home] # npm install 패키지명                 //로컬설치



Global 설치의 경우 터미널에서 모듈의 명령어를 사용해야 할 일이 있는 경우에 Global로 설치합니다.

예를 들어 , npm / forever / expresso 등은 global설치를 해야만 터미널에서 모듈 명령어들을 사용할 수 있습니다.




글로벌 설치의 경우 기본적으로 usr/local 하위에 설치됩니다.

usr/local/lib/node_modules에 설치가 되며 

실행파일은 usr/local/bin

man page는 usr/local/share/man 하위에 생성됩니다.

글로벌 경로의 설치경로는 아래 명령어로 확인할 수 있습니다.


 

 [user@server home] # npm config ls




Local 설치의 경우 터미널에서 모듈의 명령어를 사용할 일이 없고, 

소스내에서만 require() 로 불러들이는 모듈들을 설치할 때 사용합니다.


로컬설치의 경우 현재위치 하위에 설치됩니다.


npm의 패키지를  경우 또한 두가지가 있습니다


 

 [user@server home] # npm search 패키지명             //중앙저장소보기

 

 [user@server home] # npm ls                                   //본인PC 보기



아래의 npm ls 를 실행할 경우 현 위치에 로컬설치된 패키지들을 트리뷰로 확인할 수 있습니다.

-p 옵션을 추가하면 트리뷰가 아닌 폴더리스트로 확인이 가능합니다.


+ Recent posts

티스토리 툴바