Node.js 프로젝트를 시작하거나 관리하다 보면, `package.json` 파일을 접하게 됩니다. 이 파일은 Node.js 프로젝트의 중심이라 할 수 있으며, 다양한 정보를 포함하고 있습니다. 이번 기사에서는 `package.json` 파일의 구조와 필수 속성에 대해 자세히 알아보겠습니다
package.json 파일이란?
`package.json` 파일은 Node.js 프로젝트의 메타데이터를 담고 있는 파일로, 프로젝트의 설정, 의존성 관리, 스크립트 정의 등 여러 중요한 역할을 합니다. 이 파일을 통해 프로젝트를 효율적으로 관리하고, 다른 개발자들과 협업할 수 있습니다.
package.json 파일의 기본 구조
{
"name": "your-project-name",
"version": "1.0.0",
"description": "A brief description of your project",
"main": "index.js",
"scripts": {
"start": "node index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "Your Name",
"license": "ISC",
"dependencies": {},
"devDependencies": {}
}
주요 필드 설명
1. name
프로젝트의 이름입니다. NPM 레지스트리에 패키지를 게시할 때 사용됩니다.
2. version
프로젝트의 버전입니다. SemVer(유의적 버전 관리) 규칙을 따릅니다.
3. description
프로젝트에 대한 간단한 설명입니다.
4. main
프로젝트의 진입점 파일을 지정합니다. 기본값은 `index.js`입니다.
"main": "app.js"
5. scripts
프로젝트에서 자주 사용하는 명령어를 정의합니다. `npm run <script-name>`으로 실행할 수 있습니다.
"scripts": {
"start": "node app.js",
"test": "mocha"
}
6. keywords
프로젝트를 설명하는 키워드 배열입니다. NPM 레지스트리에서 검색될 때 유용합니다.
"keywords": ["node.js", "express", "api"]
7. author 프로젝트 작성자의 이름 또는 연락처 정보를 포함합니다.
"author": "John Doe <john.doe@example.com>"
8. license
프로젝트의 라이선스 정보를 포함합니다.
"license": "MIT"
9. dependencies
프로젝트에서 사용하는 외부 패키지들을 정의합니다. `npm install <package-name>`으로 설치된 패키지가 여기에 추가됩니다.
"dependencies": {
"express": "^4.17.1",
"mongoose": "^5.10.0"
}
10. devDependencies
개발 환경에서만 필요한 패키지를 정의합니다. `npm install <package-name> –save-dev`로 설치된 패키지가 여기에 추가됩니다.
"devDependencies": {
"nodemon": "^2.0.4",
"mocha": "^8.1.0"
}
실제 프로젝트의 package.json 파일
{
"name": "blog-api",
"version": "1.0.0",
"description": "A RESTful API for blog management",
"main": "server.js",
"scripts": {
"start": "node server.js",
"dev": "nodemon server.js",
"test": "mocha tests/"
},
"keywords": ["node.js", "api", "blog"],
"author": "Jane Doe <jane.doe@example.com>",
"license": "MIT",
"dependencies": {
"express": "^4.17.1",
"mongoose": "^5.10.0",
"cors": "^2.8.5"
},
"devDependencies": {
"nodemon": "^2.0.4",
"mocha": "^8.1.0"
}
}
이 예제는 블로그 API를 위한 `package.json` 파일로, 주요 필드와 의존성을 포함하고 있습니다. 이처럼 `package.json` 파일을 잘 관리하면 프로젝트의 가독성과 유지보수성이 크게 향상됩니다.
결론
Node.js 프로젝트의 `package.json` 파일은 프로젝트를 체계적으로 관리하고, 협업을 용이하게 하는 데 필수적입니다. 이 파일의 각 필드를 이해하고 적절히 설정하면, 프로젝트의 일관성을 유지하고 효율적으로 발전시킬 수 있습니다. 이번 가이드를 통해 `package.json` 파일에 대한 이해도가 높아지길 바랍니다.