Language/Node.js

Package Manager

2022. 9. 30. 23:00
728x90
반응형

 

Package Manager

1) Package Manager ?

패키지를 손쉽게 다루는 작업을 안전하고 편리하게 사용하기 위한 툴

다른사람이 만들어준 코드를 다운받거나 자신의 코드를 배포할 수 있다.

Node.js에서 대표적으로 사용하는 패키지 매니저는 npm, yarn이 있다.

 

패키지란 ?

npm이나 yarn에 업로드된 Node.js 모듈

모듈이 다른 모듈을 참조하여 사용하는 것과 같이, 패키지도 다른 패키지를 사용할 수 있다

=> 의존 관계

 

2) npm ?

JS에서 사용할 수 있는 패키지(모듈) 관리자

Python과 같은 언어에서 Flask나 BeautifulSoup과 같은 패키지를 설치할 때

pip가 필요했다면 Node.js에서는 npm을 통해 패키지를 설치.

npm을 통해 라이브러리를 쉽게 설치, 버전관리, 제거가 가능하다

npmjs.com 에서 확인할 수 있는 패키지만 설치가 가능하다

누구나 새로운 패키지 등록 가능

Node Package Manager의 약자로 지금은 Node.js와 관계없이 프론트엔드에서만 사용가능한

JS패키지들도 모두 등록되어 있다.

 

3) yarn ?

npm의 대체제로 FaceBook이 출시한 패키지 매니저

npm에서 부족한 부분을 보완하여 편리한 기능이 추가

더욱 빠른 속도로 패키지를 관리할수 있다.

출처) npm vs yarn의 Package install의 속도 차이

 

4) Package.json ?

설치한 패키지들의 버전을 관리할 때 사용하는 파일

동일한 패키지를 사용하더라도 버전별로 기능을 다르게 사용할 수 있어

특정한 버전을 설치할 때 필요

패키지 관리 외에도 프로젝트명, 작성자, 라이센스 정보등 

다양한 메타 데이터들을 기록할 수 있다.

npm과 yarn 모두 동일한 package.json 파일을 참조한다.

 

5) Package-look.json ?

Package.json파일에서 정의한 패키지 외에도 node_modules에 들어있는 

패키지의 버전과 의존 관계가 상세하게 기록되어 있다

npm으로 패키지를 설치, 수정, 삭제할 때마다 패키지들의

의존 관계를 package-look.json파일에 저장한다

저장된 패키지들은 정확히 일치하는 버전만 기록되므로, 프로젝트에서

의존하는 패키지 버전을 정확하게 관리할 때 사용할 수 있다.

 

배포하기 전 npm 학슴

1) npm 복습

npm init

명령어를 통해 package.json 파일을 만든다

npm으로 설치된 모듈에 대한 정보가 들어있다

새로운 프로젝트나 패키지를 만들 때 사용

패키지명, 프로젝트 버전, Github URL등 프로젝트 관련 정보설정 

 

npm install express

npm을 모듈로 설치할 때 명령어

install 대신 i로 사용가능

express는 설치하고자 하는 모듈이름

여러개의 모듈을 설치가능

ex) npm install express mongoose jest

 

2) node_modules ?

package.json 파일 기반으로 npm install 명령어를 통해 설치된 모듈폴더

설정된 모듈과 해당 모듈들이 참고하고 있는 또 다른 모듈도 함께 설치

다른곳에 공유나 배포가 안되게 조심해야함 !

 

3) npm install ?

명령어가 입력되면 package.json 기반으로 node_modules에 명시된

모듈들을 설치하는 명령어

내 프로젝트를 공유하거나 타인의 프로젝트를 사용할 때 

모듈을 설치하기 위해 실행하는 명령어

 

- devDependencies ?

개발단계에서만 필요한 모듈들을 설치할 경우 이곳에 포함된다

npm install -D (모듈이름) 으로 추가 가능.

(참고 : https://selenehyun.notion.site/NPM-bb21551cb0e649ee9c0fa28bf3e52201)

 

NPM: 종속성 관리

npm 모듈을 많이 개발하는 사람이라면 잘 알수도 있지만 의외로 모르는 사람이 많다.

selenehyun.notion.site

 

4) 총정리 

node_modules 는 공유하거나 배포시 포함 X

package.json만 있으면 언제든 환경에 맞는 모듈들 설치 가능

이미 추가된 모듈 설치는 npm install

 

좀 더 알아보자 !

1. 패키지 매니저를 사용하는 이유

 

2. npm과 yarn의 장단점

 

3. package.json의 필요성

 

 

참고할만한 자료

https://pakss328.medium.com/yarn%EC%9D%B4%EB%9E%80-b4e8edf1638b

 

yarn이란?

yarn이란?

pakss328.medium.com

https://yarnpkg.com/features/constraints

 

Constraints

An in-depth guide to Yarn's constraints, a feature that provides an easy way to enforce common rules across a project.

yarnpkg.com

https://soshace.com/yarn-package-manager-in-2019-should-we-keep-on-comparing-yarn-with-npm/

 

Yarn vs. npm in 2019: Choosing the Right Package Manager for the Job

In this article, we’ll thoroughly explore both Yarn and npm, all the while answering these questions: What are their key features? What advantages and disadvantages do they have? How are their workflows organized? Let’s find out!

soshace.com

 

728x90
반응형

'Language > Node.js' 카테고리의 다른 글

Node.js의 require, 그리고 IIFE  (1) 2022.10.13
Node Snippets 명령어  (0) 2022.10.05
Express.js  (0) 2022.09.30
첫 Node.js  (0) 2022.09.30
'Language/Node.js' 카테고리의 다른 글
  • Node.js의 require, 그리고 IIFE
  • Node Snippets 명령어
  • Express.js
  • 첫 Node.js
JangKroed
JangKroed
JangKroed
JangKroed
JangKroed
전체
오늘
어제
  • FindAllPost() (139)
    • 항해99 (40)
      • TIL (19)
      • WIL (13)
      • 공부 (7)
    • 개발일지 (70)
      • 스파르타 게임개발 종합반 (1)
      • Error (5)
      • TIL (64)
    • Language (16)
      • Javascript (7)
      • Node.js (5)
      • TypeScript (0)
      • Nest.js (0)
      • Unity (4)
    • DataBase (3)
      • MySQL (2)
      • MongoDB (1)
    • DevOps (4)
      • AWS (4)
      • Docker (0)
    • Tools (5)
      • VScode (1)
      • Git (1)
      • libraries (3)
    • 끄적끄적 (1)
      • 메모 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

깃허브

공지사항

인기 글

태그

최근 댓글

최근 글

반응형
250x250
hELLO · Designed By 정상우.
JangKroed
Package Manager
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.