author
postNo
status
thumbnail
description
category
tags
createdAt
updatedAt
안녕하세요. npm 7이 발표된지 꽤 됐지만.. 묵혀두었던 문서를 비공개 저장소에 두기는 아쉬워 지금이라도 공개하려고 합니다.
NPM 7.0.0 Release
Node v15.0.0이 발표와 함께 npm v7.0.0도 발표되었습니다.
npm 7.0.0에는 어떠한 새로운 기능들이 있는지 천천히 살펴볼까 합니다.
그 전에.. npm이 무슨일을 할까?
npm 이란
Node Package Manager의 약자료 노드 패키지 매니저 입니다. 세상에 수많은 JavaScript개발자들이 자바스크립트 패키지를 만들었고, 그런 코드가 공개되어있는곳이 npm입니다. 말 그대로 노드 패키지 관리소 입니다.
다른 사람들이 이미 개발해 둔 기능을 npm을 통해 간편하게 가져다 사용할 수 있는 것입니다.
package.json파일을 통해 무수히 많은 패키지들 중 프로젝트에 필요한 패키지와 버전정보를 관리할 수 있습니다. 명령어를 통해 손쉽게 파일을 생성할 수 있습니다.
npm 7.0.0에서 생긴/바뀐 기능
- 워크스페이스 지원: 여러 패키지를 하나로 묶어서 관리
- 피어 디펜던시 자동 설치: 연관된 패키지들을 자동으로 설치
- package-lock.json v2 포맷 적용 및 yarn.lock 지원
- Breaking Changes
- 피어 자동설치 적용
- package.json이 exports필드를 정의해서, 이제는 npm 내부모듈을 require()할 수 없음
- npx가 npm exec를 호출하도록 변경. 하위 호환은 유지하지만 몇몇 변경사항이 있음
- npm aduit의 출력 형식 변경
워크스페이스 지원
최상위 루트에서 아래 여러 패키지들을 관리할 수 있습니다.
package.json이러한 기능은
lerna라는 프로젝트에서 지원하는 기능과 비슷합니다.npm에서 심볼릭 링크
이렇게 설정된 프로젝트에서 심볼릭 링크는 아래와 같이 설정됩니다.