package.json
package.json?
- npm 모듈을 활용하기 위해 해당 모듈에 대한 정보를 담은 파일
- 즉, 프로젝트 전반에 관한 정보가 들어있다
npm
node.js 생태계의 패키지 매니저
package.json?
{
"name": "modern-javascript-koans",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "mocha modern-js-koans/*.js --sort",
"report": "mocha modern-js-koans/*.js --sort --reporter @mochajs/json-file-reporter",
"submit": "codestates-submission"
},
"keywords": [],
"author": "codesatates",
"dependencies": {
"@codestates-cc/submission-npm": "^1.1.1"
},
"devDependencies": {
"@mochajs/json-file-reporter": "^1.2.1",
"chai": "^4.2.0",
"mocha": "^8.2.0",
"sinon": "^9.0.3"
}
}
프로젝트에 관한 정보
CLI에서 사용가능한 명령
개발과 관련된 dependency들
천리길도 npm install 부터
$ npm install
package.json에 적힌 모듈을 다운로드 받습니다
node_modules에
저장됩니다
devDependencies
{
"devDependencies": {
"@mochajs/json-file-reporter": "^1.2.1",
"chai": "^4.2.0",
"mocha": "^8.2.0",
"sinon": "^9.0.3"
}
}
프로그램 실행과 관계없는 오로지 개발을 위해 필요한
dependency (의존성 모듈)
--save-dev 옵션과 함께 install 실행시 자동으로 devDependencies에 추가됨
$ npm install mocha --save-dev
devDependencies
* 참고로 mocha라는 모듈은 테스트를 위해 필요합니다
dependencies
{
"dependencies": {
"react": "^16.7.0",
"react-dom": "^16.7.0"
}
}
직접 실행과 관련 있는 dependency
이 프로젝트에서는 React라는 라이브러리를 사용하고 있네요!
dependencies
$ npm install react
$ npm install --save react
또는
--save 옵션과 함께 (생략 가능) install 실행시
자동으로 dependencies에 추가됨
why save?
우리가 흔히 하는 npm install은 package.json에 있는 dependency (의존성 모듈)를 바탕으로 설치
why save?
dependency에 등록되어 있지않다면?
why save?
코드에서는 해당 모듈을 쓰고 있지만 npm install로는 설치되지 않는다!
why save?
팀 갈등의 주요 원인이 된다
scripts 항목
{
"scripts": {
"test": "mocha modern-js-koans/*.js --sort",
"report": "mocha modern-js-koans/*.js --sort --reporter @mochajs/json-file-reporter",
"submit": "codestates-submission"
}
}
CLI에서 사용가능한 명령 (npm script라고 부릅니다)
npm run <스크립트이름> 으로 실행 가능
{
"scripts": {
"start": "node index.js",
"test": "mocha test/index.test.js",
"lint": "eslint",
"submit": "codestates-submission"
},
}
주로 다음과 같은 작업들을 scripts 항목에 기술한다
scripts 항목
*참고: 위에서 언급된 작업들이 항상 모든 프로젝트에 있는 것은 아닙니다
작업 내용 | 실행 스크립트 |
---|---|
node.js 앱 실행 | npm run start |
테스트 실행 | npm run test |
코드 검사 | npm run lint |
과제 제출 (코드스테이츠 only) | npm run submit |
마지막 슬라이드입니다
[DOB] Node.js - npm & package.json
By Codestates
[DOB] Node.js - npm & package.json
- 178