data life

Nodejs package.json 본문

Back-end

Nodejs package.json

주술회전목마 2022. 12. 4. 17:50


Node.js란?

주로 서버 프로그래밍에 사용되는 JavaScript 기반의  소프트웨어 플랫폼

HTTP 통신 관련 라이브러리가 내장되어 있고 NPM(Node Package Manager)을 통한 방대한 라이브러리를 제공하고 있다.

현재까지도 많은 업데이트를 통해서 프론트엔드 개발자의 서버 개발 접근성을 높이고 있다.

또한, CRA(Create React App)으로 프로젝트 생성 시 개발 환경 및 테스트 서버로 이용된다.

 

npm 이란?

Node.js 설치 시에 함께 설치되는 패키지라고 보면 된다.

Node.js 환경에서 사용하는 각종 패키지들을 관리하는 저장소이며 패키지 뿐만 아니라 서버 실행 및 관리에 필요한 다양한 명령어들을 제공해주고 있다.

package.json

node.js 관련 정보를 담는 방법
이 파일에 넣으면 npm이 어떤 행동을 할 수 있게 해주는 것들이 있음
(예. scripts: npm run script이름 => 복잡한 scripts에 별명을 줄 수 있음)

https://docs.npmjs.com/cli/v9/configuring-npm/package-json

 

package.json | npm Docs

Specifics of npm's package.json handling

docs.npmjs.com


name, version
: 필수 입력 항목이며 입력하지 않을 시 패키지는 설치할 수 없다.

description, keywords
: 설명란, 키워드란
: npm search로 검색된 리스트에 표시되어 패키지를 찾아내고 이해하는데 도움된다.

homepage
: 프로젝트 홈페이지가 있을 경우 이 항목에 입력한다

bugs
: 프로젝트의 이슈와 버그 트래킹을 볼 수 있는 url과 이슈를 알릴 email 주소를 입력한다.

license
: 만든 패키지를 사용하기 위해 어떻게 권한을 얻는지, 어떤 금기 사항이 있는지 알리기 위해 라이센스를 명시해야 한다.
: BSD-3-Clause 나 MIT 같은 일반적인 라이센스의 표준 SPDX ID를 지정
>> https://spdx.org/licences/ 에서 SPDX 라이센스 아이디 전체 리스트 확인 가능
>> 비공개로 사용하거나 어떤 조건에서도 패키지를 제공하지 않을 경우

"license" : "UNLICENSED"

people fields : author, contributors
- author : 한 사람
- contributors : 여러 사람
* 필수 항목 : name
** 선택 항목 : email, url

files
: 프로젝트에 포함된 파일의 배열
[ 항상 포함되는 파일들 ]
- package.json
- README
- CHANGELOG
- LICENSE 또는 LICENCE

[ 일부 무시되는 파일들 ]
- .git
- CVS
- .svn
- .hg
- .lock-wscript
- .wafpickle-N
- *.swp
- .DS_Store
- ._*
- npm-debug.log

main
: 프로그램의 시작점이 되는 모듈의 id

bin
: 실행할 수 있는 패키지를 만들기 위해 package.json 파일에 bin 항목을 제공해야 한다.
패키지 설치 시, npm은 bin 항목에 기술된 파일의 심볼릭 링크를 global install인 경우 prefix/bin 에
local install 인 경우 ./node_modules/.bin/ 에 생성하게 된다.

directories
- directories.lib : 모듈의 라이브러리가 어디 있는지 보여준다.
- directories.bin : directories.bin 으로 bin을 지정한다면, 해당 디렉토리의 모든 파일이 실행 파일로 추가된다.
- directories.man : man 문서들이 위치한 폴더를 가리킨다.
- directories.doc : 마크다운 파일들을 여기에 위치시킨다.
- directories.example : 예제 파일들을 여기에 위치시킨다.

repository
: 소스 코드가 관리되는 저장소 위치를 지정한다.

"repository" : {
	"type" : "git",
	"url" : "http://github.com/npm/npm.git"
}


⭐️ scripts
: 패키지의 생명주기 중 다양한 타이밍에서 실행되는 script 명령들을 포함하고 있는 사전
npm-scripts

config
: 패키지 버전에 관계없이 패키지 스크립트에서 사용될 수 있는 설정 정보
npm-config

dependencies
: npm 이 자동으로 설치를 도와줌
프로젝트가 작동하기 위해 필요한 것들로 구성
예) 자동차의 연료 -> 운전을 위한 필수

devDependencies
: 운영이 아닌 개발 단계에서만 필요한 의존성 모듈들은 여기에 설치한다.
개발자가 개발을 위해 필요한 것들로 구성
예) 자동차의 네비게이션 -> 운전을 위해 부가적인 요소일 뿐!

peerDependencies
: 당신이 만든 패키지가 다른 패키지에 직접 require 되는 건 아니지만 그 호스트 패키지와 호환성을 가지고 싶을 때

bundledDependencies
: 패키지를 퍼블리싱할 때 번들되는 패키지 이름들의 목록

optionalDependencies
: 사용을 원하는 모듈이지만 없거나 설치가 실패해도 npm의 패키지 설치 과정이 중단되지 않도록 하기 위함이다.
버전을 포함한 패키지 이름 혹은 url을 dependencies 와 같은 방식으로 기재한다.

engines
: 동작 가능한 node의 버전을 지정할 수 있다.

os
: 당신의 모듈이 어떤 운영체제에서 작동하는지 지정

cpu
: 당신의 코드가 특정 cpu architecture에서만 동작하도록 지정

preferGlobal
: 패키지가 글로벌 설치(-g)를 수행해야만 한다먄, 이 값을 true로 해서 local 설치시 경고 메세지를 제공한다.

private
: 개인적으로만 사용하는 저장소를 무심코 퍼블리싱해버리는 것을 방지한다.

publishConfig
: 퍼블리싱할 때 사용되는 설정.

DEFAULT VALUES
: npm은 패키지 내용에 따라 몇 가지 기본값을 설정한다.

'Back-end' 카테고리의 다른 글

[Prisma] Prisma 시작하기(1)  (0) 2023.11.12
[PlanetScale] PlanetScale에 대해 알아보자  (0) 2023.11.07
MongoDB  (0) 2022.12.10