본 자료는 박민 코치님의 자료와 Elice 플랫폼의 자료를 사용하여 정리하였습니다.
NPM 이해하기
NPM이란?
- Node Package Manager
- Node.js 프로젝트를 관리하는 필수적인 도구
- 온라인 저장소 + 커맨드라인 도구
NPM 온라인 저장소
- 수많은 오픈소스 라이브러리와 도구들이 업로드되는 저장소
- 필요한 라이브러리나 도구를 손쉽게 검색 가능
- Node.js의 인기로, 거대한 생태계를 보유
커맨드라인 도구
NPM 사용해보기
프로젝트 생성하기
npm init
입력
- 몇 번의 질문 후 package.json 파일 생성
→ Node.js 프로젝트가 된다.
package.json 파일이란?
- 프로젝트 관련 정보들이 저장되는 파일
- 이 파일을 직접 수정하거나 npm 명령어를 사용하여 프로젝트 정보를 수정할 수 있다.
- 구성 요소
- version - 프로젝트의 버전
- name - 프로젝트의 이름
- description - 프로젝트 설명
- scripts -
npm run [script_name]
으로 실행할 수 있는 사용자 작성 스크립트
- dependencies - 의존성 패키지들
- devDependencies - 개발환경에서만 사용하는 의존성 패키지들
라이브러리란?
- 특정기능을 수행하는 코드의 묶음
- 직접 작성하지 않고, 다른 사람이 구현한 것을 사용하는 방법
- Node.js에서는 패키지라고도 부른다.
npm install 명령어
- 프로젝트 의존성을 관리
- 의존성 추가, 의존성 내려받기, 개발용 의존성 추가, 전역 패키지 추가
의존성 추가하기
npm install [package_name]
- 필요한 패키지를 프로젝트에 추가
- 추가된 패키지는 package.json의 dependencies 안에 추가되며, node_modules 디렉토리에 저장된다.
배포전까지만 사용한 개발용 의존성 추가하기
npm install [package_name] --save-dev
프로젝트에 의존성 내려받기
npm install
- package.json 파일에 정의된 패키지들을 추가
의존성 버전 표기법
npm install [package_name]@[version]
package-lock.json 파일이란?
전역 패키지 추가
npm install [package_name] --global
의존성 삭제하기
npm remove [package_name]
NPX
NPX란?
- npm 패키지를 설치하지 않고 사용할 수 있게 해주는 도구
NPX로 Node.js 버전별로 실행하기
npx node@12 index.js
npx node@14 index.js
Node.js의 모듈
모듈이란?
- 프로젝트가 커지면 기능에 맞게 코드를 분리하는 것이 중요
- 모듈은 코드를 분리하기 위한 방법 (재사용할 코드를 내보내는 방법)
- 모듈의 모음은 패키지
기본제공 모듈
- console
- process
- fs
- http 등등
모듈의 작성과 사용
모듈 내보내기
module.exports = name; # 변수와 함수 둘 다 가능
module.exports = {name, age}; # 여러개 가능
exports.name = name;
모듈 불러오기
const dayjs = require("package_name");
const myModule = require("파일 경로"); # json파일도 가능하다.
- 함수형은 변수에 require하고 변수를 함수처럼 사용
Node.js에서 문법 바꾸기
- package.json 파일 수정 (CommonJS에서 ESModule로 바꾸기)
"author"
위에 "type": "module"
입력 후 저장
심화 - ES Module
- ES6에서 등장한 JavaScript의 공식적인 표준 모듈
- ES Module →
export
, import
- CommonJA →
module.exports
, require