엘리스 SW 엔지니어 트랙 27일차
최규범 강사님 온라인 강의날
NPM(Node Package Manager)
NPM 온라인 저장소
오픈소스 라이브러리 도구
필요한 라이브러리, 도구 검색 가능
Node.js 인기로 거대한 생태계 보유
npm 사용 / 명령어
npm init
프로젝트 디렉터리에서 사용하면
몇 번의 질문으로 package.json 파일이 생성됨
그럼 이 디렉터리는 Node.js 프로젝트가 된다!
package.json
프로젝트 관련 정보 저장되는 파일
직접 or npm 명령어로 수정가능
dependency(의존성)
프로젝트가 실행되려면 라이브러리가 필요
라이브러리는 package.json의 dependency에서 관리
이 라이브러리를 dependency 라고 부른다
Libaray(라이브러리)
다른 사람의 코드를 가져와서 사용하는 것
Node.js 에서는 Package(패키지)라고도 부른다
npm install or npm i
프로젝트 의존성 관리위한 명령어
npm intall [package-name]
프로젝트에 의존성 추가
package.json의 dependencies안에 추가되고,
node_modules 디렉터리에 저장됨
npm install [package-name] --save-dev
개발용 의존성 분리
배표용에 들어갈 필요 없는 패키지는 이렇게 설치
package.json의 devDependencies에 추가됨
예) 유닛 테스트 라이브러리
npm install
위 명령어 사용시 node_modules가 없는
처음 시작 프로젝트를 내려 받았을 때
package.json에 정의된
depencies와 devDependencies 의존성을
node_modules 디렉터리에 내려받는다
npm install --production
프로젝트의 개발용 의존성 빼고 내려받는 명령어
depencies만 node_modules로 내려받는다
npm install [package-name]@[version]
패키지 버전 지정
package-lock.json
프로젝트에 의존성 추가시 자동 추가되는 파일
의존성 버전이 변경되지 않도록
설치된 버전 고정하는 역할
npm install [package-name] --global or -g
전역 패키지 디렉터리에 내려받는 것
커맨드라인 도구에 주로 사용
예) express-generator, pm2
npm remove [package-name]
의존성 삭제
dependencies, devDependencies, node_moudles에서 전부 삭제
npm run [script-name]
스크립트 실행
NPX
npm 피키지를 설치 없이 사용할 수 있게 해주는 도구
한번씩 사용할 것들 사용가능
gist 코드 다운받지 않고 바로 실행 가능
npx gits 코드 예시
npx https://gist.github.com/zkat/4bc19503fe9e9309e2bfaa2c58074d32
Node.js의 모듈
코드를 분리하기위한 방법
모듈의 모음을 패키지라고도 한다
Node.js의 기본 제공 모듈
console
가장 많이 쓰인다
브라우저의 console과 엄청 유사
process
현재 실행 프로세스 관련 기능 제공
fs
파일 입출력
http
서버, 클라이언트
- url
- os
- path
- crypto
- 등 등
nodejs.org 에서 확인가능
nodejs org docs 링크 => https://nodejs.org/en/docs/
모듈의 작성과 사용
require('package-name')
의존성 패키지를 불러오는 것
패키지 사용하려면 node_modules에 내려받아져 있어야된다
require('./my-module')
직접 작성한 모듈은 위치를 지정해서 불러온다
require('./function-module')
함수형 모듈 불러오면 바로 실행안된다
필요한 시점에 실행해주면된다
함수형 모듈 예시
const myFuncModule = require('./function-module')
console.log(myFuncModule(name, age, nationality))
json 파일
require로 json 파일 불러오면
object로 자동파싱
module.exports
모듈 작성
require
모듈 불러올 때
모듈을 첫 require에만 실행, 그후 cache된 데이터 가져온다
여러번 모듈 실행하고 싶으면 함수형으로 작성
ES Module vs Node.js
모듈 생성
commonjs: module.exports
ES Module: export
모듈 불러오기
commonjs: require
ES Module: import
ES Module
ES6 공식 표준 모듈
Node.js
commonjs으로 모듈 사용
현재 ES Module은 Node.js 사용하기에 제약 많음
프로젝트 타입 module로 변경, commonjs 모듈 import시 문제 발생
'Web Dev > ELICE' 카테고리의 다른 글
28 :: Router, 미들웨어, API (0) | 2021.12.02 |
---|---|
27 (3/3) :: Node.js 웹 프레임워크, 라우팅, Express.js (0) | 2021.12.01 |
27 (1/3) :: Node.js, ES6, 비동기 삼형제, Event Loop (0) | 2021.12.01 |
26 :: Node.js, 서버 만들기, express.js, 왜 Docker 쓰나 (0) | 2021.11.30 |
25 (2/2) :: TypeScript 데코레이터 (0) | 2021.11.27 |