[Prep.04]Package.json

Yun Hyuk Ko·2021년 2월 8일
0

package.json

목록 보기
1/1

하나의 프로젝트는 다양한 모듈들이 합쳐져서 만들어진다. 하지만 우리가 개발을 할 때 모든 것을 만들어서 쓰지는 않는다.
우리가 다 만들어서 쓰지 않는데는 이유가 있다. 가장 먼저 시간이 오래 걸릴 뿐더러 우리가 만든 것을 100% 신뢰하기는 힘들다.
그래서 우리는 우리보다 잘하는 사람들이 만들어 놓은 검증된 코드(모듈)를 가져다가 사용한다.

NPM

NPM은 Node Package Manager로 일종의 앱스토어이다. 필요한 모듈을 다운로드할 수 있는, 모듈들이 모여있는 모듈 스토어다. 앞으로 필요한 모듈은 대부분 NPM에서 다운로드해서 사용하면 된다.

node 모듈을 사용하는 프로젝트에서 npm이라는 키워드는 하나의 명령어처럼 사용되기도 한다. npm start처럼, 프로젝트를 실행시킬 때 npm 키워드를 사용하기도 한다.

package.json

내가 만든 프로젝트라면 어떤 모듈들이 필요한지 잘 안다. 하지만 다른 사람이 내가 만든 프로젝트를 실행시킬 땐 이야기가 달라진다.
어떻게 해야 프로그램을 실행시킬 수 있는지, 이걸 실행시키기 위해 어떤 모듈이 필요한지를 알 수 없다.

내가 만든 프로젝트를 혼자 사용한다면 문제가 되진 않겠지만, 대부분 다른 사람과 함께 개발하고 이용한다. 그렇다면 다른 사람들에게 이 프로젝트에 대해 알려주어야되는데 그 역할을 하는 것이 바로 package.json이다.

package.json에는 이 프로그램을 실행시키기 위해 필요한 모듈이 무엇인지, 프로그램을 실행시키는 방법, 프로그램을 테스트하는 방법 등이 명시되어 있다.

헷갈리면 안되는 포인트가 있다. 프로그램을 실행시키기 위한 모듈은 node_modules라는 폴더에 들어가있다. package.json에는 어떤 모듈인지만 적혀있다.

package.json의 이점은 프로젝트 코드를 전달할 때, 포함하고 있는 모든 모듈을 다 전달하지 않아도 된다. 즉, "우리의 코드는 여기 있고, 필요한 모듈은 package.json에 적어 놨으니 직접 받아서 사용하면 돼" 라고 하면된다.

필요한 모듈까지 전부 넘겨주는 것은 파일도 많거니와 그럴 필요가 없다.
사용하는 사람이 직접 다운받아서 사용하라고 하면된다. 우리는 무엇이 필요한지만 알려주면 된다.

앞으로 어떤 프로젝트를 받아서 사용하고 개발할 때 팔요한 모듈은 package.json에서 확인하고 npm을 이용해 받으면 된다.

npm install명령어를 입력하면 package.json에서 필요하다고 하는 모듈을 다운로드 받을 수 있다.
npm install이 완료되면 node_modules디렉토리가 생긴 걸 확인할 수 있다.

package.json 파헤치기

1. dependencies

이 프로젝트가 돌아가기위해 반드시 필요한 모듈들이 무엇인지가 적혀있다.

"dependencies": {
  "react": "^16.8.6",
}
  1. devDependencies

이 프로젝트를 개발하는 환경에서 필요한 모듈들이 무엇인지가 적혀있다. 예를 들면 코드 모양을 잡아주는 lint나 테스팅 모듈처럼, 실제 프로젝트 동작에 직접적으로 영향을 주지 않는 모듈들을 명시한다.

"devDependencies": {
  "jest": "^2.3.0",
  "eslint" : "^2.0.0"
}
  1. scripts

npm 으로 실행시킬 수 있는 명령어를 정의한다. 명령어를 입력하면 어떤 동작을 해야하는지가 적혀 있는데, 예를들어 npm test 명령어를 입력하면 "test.js 파일을 node 에서 실행시켜라!" 하는 내용들이 들어있다. 만약 npm test와 같은 명령어를 실행시켰는데 "정의되지 않은 명령어" 라는 오류 메시지가 나오면, package.json 파일 scripts 에 해당 명령어가 정의되어 있는지를 확인해 보면된다.

"scripts": {
  "start": "node app.js",
  "test": "node test.js",
}
profile
기억보다 좋은건 기록이다

0개의 댓글