{
"name": "npmtest",
"version": "0.0.1",
"description": "hello package.json",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "ZeroCho",
"license": "ISC",
"dependencies": {
"cookie-parser": "^1.4.5",
"express": "^4.17.1",
"express-session": "^1.17.1",
"morgan": "^1.10.0"
},
"devDependencies": {
"nodemon": "^2.0.3",
"rimraf": "^3.0.2"
}
package name
: 패키지의 이름입니다.version
: 패키지의 버전입니다.entry point
: 자바스크립트 실행 파일 진입점입니다. 보통 마지막으로 module.exports를 하는 파일을 지정합니다. package.json의 main 속성에 저장됩니다.test command
: 코드를 테스트할 때 입력할 명령어를 의미합니다. package.json scripts 속성 안의 test 속성에 저장됩니다.git repository
: 코드를 저장해둔 Git 저장소 주소를 의미합니다. 나중에 소스에 문제가 생겼을 때 사용자들이 이 저장소에 방문해 문제를 제기할 수도 있고, 코드 수정본을 올릴 수도 있습니다. package.json의 repository 속성에 저장됩니다.keywords:
키워드는 npm 공식 홈페이지(https://npmjs.com)에서 패키지를 쉽게 찾을 수 있게 해줍니다. package.json의 keywords 속성에 저장됩니다.license
: 해당 패키지의 라이선스를 넣어주면 됩니다.node_modules 는 용량을 많이 차지하기 때문에 package.json , package.lock 만 배포함.
이후에 npm i 를 하면 의존 관계있는 패키지들 설치됨.
npm install —save-dev 패키지명
또는 npm i -D 패키지명
npm install —global 패키지명
또는 npm i -g 패키지명
( 이건 좀 기피 ☹)npx rimraf node_modules
npm install —save-dev rimraf
노드 패키지 버전은 SemVer방식을 따름
노드에서는 배포를 할 때 항상 버전을 올려야함
^1.1.1
: 패키지 업데이트 시 minor 버전까지만 업데이트 됨(2.0.0버전은 안 됨)~1.1.1
: 패키지 업데이트 시 patch버전까지만 업데이트 됨(1.2.0버전은 안 됨)npm outdated
: 어떤 패키지에 기능 변화가 생겼는지 알 수 있음
npm update
: package.json에 따라 패키지 업데이트
npm uninstall 패키지명
: 패키지 삭제(npm rm 패키지명으로도 가능)
npm search 검색어
: npm 패키지를 검색할 수 있음(npmjs.com에서도 가능)
npm info 패키지명
: 패키지의 세부 정보 파악 가능
npm login
: npm에 로그인을 하기 위한 명령어(npmjs.com에서 회원가입 필요)
npm whoami
: 현재 사용자가 누구인지 알려줌
npm logout
: 로그인한 계정을 로그아웃
npm version 버전
: package.json의 버전을 올림(Git에 커밋도 함)
npm deprecate [패키지명][버전] [메시지]
: 패키지를 설치할 때 경고 메시지를 띄우게 함(오류가 있는 패키지에 적용)
npm publish
: 자신이 만든 패키지를 배포
npm unpublish --force
: 자신이 만든 패키지를 배포 중단(배포 후 72시간 내에만 가능)
npm 가입 (https://www.npmjs.com/)
배포할 패키지 작성
배포 시도하기
npm publish
배포 취소하기
npm unpublish 패키지명 —force
인프런 Node.js 강의
Zerocho 님의 "Node.js 교과서 - 기본부터 프로젝트 실습까지" 강의를 기반으로 작성한 문서입니다.