Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0. npm,yarn 에 대한 조사 #1

Open
123000l opened this issue Aug 30, 2022 · 0 comments
Open

0. npm,yarn 에 대한 조사 #1

123000l opened this issue Aug 30, 2022 · 0 comments
Labels
조사 Improvements or additions to documentation

Comments

@123000l
Copy link
Collaborator

123000l commented Aug 30, 2022

[JavaScript의 대표적인 패키지 매니저]

NPM (Node Package Manager)

노드 패키지를 관리해주는 툴이다. JavaScript 라이브러리를 설치하고 관리하는 패키지 매니저다. Node.js(Node)를 통해 다운 받을 수 있다.

1. 사용 방법

(1) npm init
npm 초기 환경 설정으로 이름, 설명 등을 적을 수 있고, 이 내용을 바탕으로 package.json이 생성된다. 이 파일로 프로젝트 정보와 패키지들의 의존성을 관리한다.

(2) npm install

프로젝트 내 설치한 패키지들의 코드가 포함 되어있는 node_modulus 폴더가 생긴다.

  • npm install ‘패키지명’ → 해당 패키지를 로컬에 설치한다.
  • npm install ‘패키지명’ -g → 해당 패키지를 전역에 설치한다.

2. package.json

현재 프로젝트에 관한 정보와 패키지 매니저를 통해 설치한 모듈들의 의존성을 관리하는 파일이다.
사용하고 있는 패키지들의 명세가 작성 되어있어 프로젝트를 공유할 때 package.json을 공유해 개발 환경을 빠르게 구축할 수 있다.

3. 장점

(1) 용이한 관리

이전에는 라이브러리끼리 연결되어 있어 버전 관리가 불편했지만, npm의 package.json 파일 안에서 dependencies에 뭉쳐져 관리가 편해졌다.

(2) 용이한 설치

npm install 로 빠른 라이브러리 설치가 가능하다.

Yarn

npm의 단점인 속도(Performance), 안정성(Stability), 보안성(Security) 개선을 위해 Facebook이 개발한 패키지 관리자이다.

  1. 속도의 개선

패키지 설치 시 각각의 패키지를 순차적으로 설치하는 npm에 반해 yarn은 병렬적으로 설치를 진행하여 속도를 증가시킨다.

  1. 안정성의 개선

다양한 설치 환경에서 같은 동작을 수행하여 안정적이다.

  1. 보안성의 개선

npm은 자동으로 패키지에 포함된 다른 패키지 코드를 실행해 보안 시스템에 취약점이 있다. 반면 yarn은 yarn.lock 또는 package.json 파일에 있는 파일만을 설치한다.

NPX (Package Runner)

새로운 패키지 관리 모듈이 아닌 npm 5.2.0 버전에서 새로 추가된 도구로 npm 사용을 돕기 위해 npm에서 제공하는 것이다. 패키지를 임시 설치해서 실행하는 용도다.

1. 특징

  1. 패키지 임시 설치 및 실행하기

npx로 프로그램을 설치하면, 임시로 설치-실행까지 된 다음, 흔적도 없이 사라진다. 패키지를 다운 받았다면 node-modulus라는 폴더가 생성되어야 하지만, npx는 node 프로젝트를 방금 실행한 것처럼 package.json 만이 존재한다.

  1. npm을 통한 설치 명령어를 줄여줌

npm은 패키지 까는 것을 기다리고 (1), 해당 패키지의 실행 파일 위치를 찾아가 실행시켜야(2) 하는 두 단계를 거친다. 그렇지만 npx를 사용하면 한 단계로 압축할 수 있다. 아래 예시를 통해 쉽게 이해할 수 있다.

예) prettier 라는 패키지 설치

(1) npm

npm i prettier

./node_modulus/.bin/prettier -v

(2) npx

npx prettier -v

  1. 다른 버전의 노드 실행 가능

일시적으로 node의 다른 버전으로 갈 수 있다. 다만 npx 특성 상 다시 돌아온다.

예) node -v

v14.15.5

npx node@6 -v

v6.17.1

node -v

v14.15.5

  1. gist-based에 스크립트 공유 가능

Github의 gist에 스크립트를 올리고 실행할 때 유용하다. 타인에게 자신의 코드를 공유하고자 하면 gist에 스크립트를 올리고 npx [gist url]만 실행하면 쉽게 공스크립트 실행이 가능하다.

2. 실행 과정

  1. 기본적으로 실행되어야 할 패키지가 경로에 있는지 확인한다.

  2. 있다면, 실행.

그렇지 않다면, npx가 최신 버전의 패키지를 설치한 후 실행한다.

@hoyyChoi hoyyChoi changed the title 1 npm,yarn 에 대한 조사 Aug 30, 2022
@1013115 1013115 changed the title npm,yarn 에 대한 조사 0. npm,yarn 에 대한 조사 Sep 3, 2022
@1013115 1013115 added the 조사 Improvements or additions to documentation label Sep 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
조사 Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

2 participants