😥
데벨업 정말 좋은 기회를 얻게 돼서 열심히 하고 싶었는데... 이렇게나 현실에 치여서 소홀해질 줄이야. 할 수 있는 데까지라도 해봐야겠다. 수업을 제대로 듣지도 못해서 퀘스트에 참가도 못 하고 있는 게 너무 아쉽다.
노드에서 사용 가능한 모듈들을 패키지화 시켜서 모아놓은 것
확장 모듈의 관리를 쉽게 하도록 도와줌
Node.js를 설치하면 기본으로 설치됨
> 👉 다른 사람이 만든 모듈을 다운받아 사용할 수 있어서 개발이 쉬워짐!
확장 모듈은 이미 검증되었으므로, 이용하면 생산성이 극대화됨
단, 확장 모듈을 사용하여 개발한 결과물을 배포할 때 확장 모듈도 함께 설치되어야 함
>👉 npm은 확장 모듈을 관리하는 역할!
(자바의 maven, 리눅스의 rpm, apt-get과 유사)
npm 설치 확인
: npm -v
npm 최신 버전 업그레이드
: npm install -g npm
{prefix}/lib/node_modules
{prefix}/bin
{prefix}/share/man
❗
{prefix}
는 기본적으로/usr/local
-g
옵션을 통해 설정npm install [모듈명] -g
npm list -g
./node_modules
./node_modules/bin/
require()
메소드를 통해 사용하는 형태인 경우 로컬 설치가 좋음-g
옵션 없이 설치npm install [모듈1], [모듈2], [모듈3]
npm install [모듈명@버전]
npm install
명령을 실행하여 다운로드 가능npm search [모듈명]
npm info [모듈명]
npm list
npm list -g
npm update [모듈명]
npm update [모듈명] -g
npm update
npm uninstall [모듈명]
npm uninstall [모듈명] -g
npm init
명령으로 자동으로 생성npm install -save
명령으로 추가{
"name" : "test",
"description" : "javascript's test programming.",
"keywords" : ["util", "f", "server", "client", "browser"],
"author" : "Goorm",
"contributors" : [],
"dependencies" : [],
"repository" : {"type": "git", "url" : "git://gitbub.com/documentcloud/test.git" },
"main" : "test.js",
"version" : "1.1.6"
}
- **name**
- 프로젝트 이름
- version과 함께 필수항목
- url로 사용되며, 설치할 때 디렉토리 이름이 되므로 명명규칙 유의
- node나 js를 사용할 수 없음
- 214자보다 짧아야 하며, 점(.)이나 밑줄(_)로 시작할 수 없음
- 대문자를 포함하면 안 됨
- `require()` 함수의 인수로 사용되므로 짧고 알기 쉬운 것으로 하는 것이 좋음
- **version**
- 프로젝트 버전
- 3단계 버전을 사용
- `-`로 태그 이름을 적을 수 있음
- **description**
- 프로젝트 설명
- 문자열로 기술
- `npm search`로 검색된 리스트에 표시되므로, 다른 사람이 패키지를 찾고 이해하는 데 도움
- **kewords**
- 프로젝트 검색 키워드
- description과 마찬가지로 검색된 리스트에 표시됨
- **homepage**
- 프로젝트 홈페이지 주소
- url 항목과는 다르며, url을 설정하지 않도록 주의
- **author**
- 프로젝트 작성자
- 한 사람만 지정 가능
- JSON 형식으로 name, email, url 옵션 포함
- **contributors**
- 프로젝트 공헌자
- 여러 사람을 배열로 지정 가능
- **repository**
- 프로젝트 소스 코드 저장소
- 프로젝트 홈페이지 url을 명시해서는 안 됨
- **scripts**
- 프로젝트에서 자주 실행하는 명령어 등록
- npm 명령어로 실행 가능
- **config**
- 소스 코드에서 환경 변수처럼 사용 가능
- **private**
- `true`로 작성하면 중앙 저장소에 저장되지 않음
- **dependencies**
- 프로젝트 의존성 관리
- 사용하는 확장 모듈 정보
- `npm install` 명령은 애플리케이션을 설치할 때 이 내용을 참조하여 확장 모듈을 자동으로 설치
- **devDependencies**
- 개발할 때만 의존하는 확장 모듈 관리
- **engine**
- 실행 가능한 노드 버전의 범위 설정
👉 개발 중인 노드 애플리케이션의 소스를 수정할 때마다 재시작할 필요가 없으므로 편리!
npm install nodemon -g
node
명령어 대신 nodemon
으로 실행nodemon app.js