티스토리 뷰

반응형

 

쓰읍

 

안녕하세요.

 

최근 들어 노드로 진행하는 프로젝트나 스터디가 늘어남에 따라 필연적으로 npm을 사용하는 일도 늘어나게 되었습니다.

 

익스프레스는 사용하지 않고 직접 미들웨어를 개발해보고 있는데, 이걸 어떻게 잘 짜맞춰야 할지 머리 싸매고 고민 중입니다.

 

아무튼 이번 글에서는 npm을 사용하는 간단한 몇 가지 방법을 정리했습니다.

 


첫 번째로 package.json 파일을 생성하는 법에 대해 알아보겠습니다.

 

우선 npm은 node package manager의 약자이고, 노드로 개발을 진행하면서 사용하는 npm에 업로드된 노드 모듈을 패키지라고 합니다.

 

개발에 필요한 패키지를 계속해서 추가하다 보면 추가한 패키지와 해당 패키지의 버전을 관리해야 할 필요가 있습니다. 이러한 부분은 package.json을 이용해 관리가 가능합니다.

 

package.json 파일의 초기 생성은 npm init 커맨드로 진행합니다.

 

커맨드를 입력했을 때 해당 프로젝트에 대한 정보를 입력하게 되는데, 입력해야 하는 항목과 내용은 아래와 같습니다.

 

 

입력해야 하는 항목

 

C: \ Users \ hw \ git \ Node > npm init

package name: (Node)
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)

 

 

입력 내용

 

 - package name : (폴더명) [프로젝트 이름 입력]
 
 - version : (1.0.0) [프로젝트 버전 입력]
 
 - description : [프로젝트 설명 입력]
 
 - entry point : [프로젝트의 최초 실행파일 입력]
 
 - test command : [npm 실행 시 "test" 커맨드를 입력했을 때 출력할 내용 입력.
                  작성하지 않으면 기본 값이 세팅된다.]
 
 - git repository : [코드를 저장해둔 Git 주소를 입력]
 
 - keywords : [npm 공식 홈페이지에서 해당 패키지가 검색했을 때 노출 될 수 있도록 함]
 
 - author : [해당 패키지 작성자를 입력. 개인이나 팀, 회사이름이 들어간다.]
 
 - license : [해당 패키지의 라이선스를 입력한다. 입력하지 않으면 기본 값인 "ISC"가 세팅된다.]

 

 

답변을 해주고 나면 package.json 파일이 생성됩니다.

 

앞으로 개발을 진행하며 추가하는 패키지는 이 파일의 dependencies 항목에 "패키지 명" : "버전"의 형태로 기록되어 관리됩니다.

 

추가로 Package-lock.json이라는 파일도 함께 생성됩니다. 이 파일에는 현재 설치되어있는 패키지에 대한 정보가 담겨있으며, npm으로 패키지를 설치, 수정, 삭제할 때마다 내부 의존관계를 기록합니다.

 


 

두 번째는 외부 모듈(패키지)을 추가로 install 하는 방법입니다.

 

방법은 매우 간단합니다. npm install 패키지명의 형태로 커맨드를 입력하면 install이 진행됩니다.

 

이렇게 설치한 패키지를 package.json의 dependencies에 추가하기 위해서는 --save를 덧붙여 작성해야 합니다.

 

//예시

npm install mysql --save

 

참고로 npm5부터는 기본값으로 설정되어있다고 합니다.

 

 

이렇게 설치한 패키지 중 특정 패키지를 실제 배포 시에는 포함시키지 않고 개발 중에만 사용하도록 설정할 수 있습니다.

 

package.json의 기존 dependencies 항목이 아닌 devDependencies 항목에 작성하면 되며, 패키지 중에는 devDependencies에 작성해야지만 구동되는 패키지도 있습니다. (Ex : electron)

 

 


 

마지막으로는 자투리 내용으로 npm 전역 설치와 git에 관한 내용입니다.

 

1.  npm 전역 설치

 

npm install을 할 때 --global을 추가로 작성해주면 콘솔의 커맨드로도 사용할 수 있게 됩니다.

 

기본 설치경로는 다음과 같습니다.

   > 윈도우 - C:\Users\사용자이름\AppData\Roamng\npm

   > macOS - /usr/local/lib/node_modules

 

이렇게 전역 설치한 패키지는 package.json에 기록되지 않습니다.

 

 

 

2. git 관련 설정

 

node_modules 폴더가 삭제되었다고 하더라도 package.json과 package-lock.json 파일이 있다면 npm install 커맨드만 입력하여 두 json 파일을 토대로 개발에 사용하고 있던 패키지를 간단하게 설치할 수 있습니다. (그래서 사용합니다.)

 

이게 위에 작성되어야 하는 내용인 것 같긴 한데 아무튼 그렇습니다.

 

그러면 git에 파일을 업로드할 때 package.json, package-lock.json만 업로드하고 node_modules 폴더는 굳이 올리지 않아도 됩니다.

 

하지만 node_modules에 있는 파일과 업로드해야 하는 파일을 일일이 구분할 수는 없기 때문에 .gitignore 파일을 이용하여 node_modules 폴더와 하위 파일을 애초에 조회되지 않도록 설정할 수 있습니다.

 

.gitignore

 

# Dependency directories

node_modules/

 

.gitignore 파일을 임의로 생성하고, 위의 소스를 붙여넣기 하여 프로젝트 최상단 폴더에 넣으면 됩니다.

 

사실 .gitignore 파일의 내용을 개발하는 프로젝트에 맞게 자동으로 작성해주는 사이트가 있습니다.

 

https://www.gitignore.io/

 

이 사이트인데, 아마 조금 보다 보면 어떻게 하면 되는지 알 수 있을 거라고 생각합니다. (구글링을 추천)

 

 

 


 

오늘은 npm에 관한 간단한 내용을 작성했습니다.

 

글의 맨 위에 적어둔 것처럼 최근에 미들웨어를 개발해보고 있는데, 아마 다음 글은 이와 관련된 내용이 아닐까 생각하고 있습니다. (꼭 그렇진 않습니다)

 

읽어주셔서 감사합니다.

반응형