[Node] 모듈 검색 순서

웅평·2023년 7월 20일
0

모듈의 검색 순서

패키지가 로드되는 두 가지 방법

  • 서드파티 패키지를 로드하면 위 이미지의 빨간색 화살표가 표시된 순서대로 과정이 진행된다.
  • package.json 파일이 존재하지 않는 경우뿐만 아니라 package.json 파일이 존재하는 경우라도그 내용 중에 main 필드가 없으면, index.js 파일이 로드된다

패키지 안에 package.json 파일이 있을 때, package.json 파일의 내용 중
(1) main 필드가 존재하면 거기에 적힌 파일을 로드하고
(2) main 필드가 존재하지 않으면 index.js 파일을 로드합니다.

Node.js 공식 문서에 있는 내용[https://nodejs.org/api/modules.html#modules_all_together]

  1. 패키지를 설치한다면 node_modules라는 디렉토리가 생긴다
  2. 이 디렉토리안에 서드파티 모듈이 설치된다.
  3. express 모듈을 설치할 때 다른 모듈도 설치된 것이 보이는데 이유는 express 설치할 때 의존되는 다른 서드파티 모듈도 설치되었기 때문이다
  4. express 디렉토리안에 package.json이 존재한다
  5. package.json라는 파일을 가지고있는 디렉토리를 패키지(package)라고 한다
  6. 하나의 서드파티 모듈은 하나의 패키지다

package.json 살펴보기

author, contributors
author는 패키지를 만든 사람, contributors는 패키지를 만드는데 기여하는 사람들

dependencies
현재 패키지가 의존하고 있는 다른 패키지들이 나열되어 있는 필드
A패키지를 설치할 때 A패키지를 설치하고 A패키지의 dependency를 보고 해당하는 패키지를 설치한다

engines
node.js가 잘 실행되기 위한 정보

name
패키지의 이름
우리가 특정 패키지를 사용하기 위해 코드에서 require 함수의 인자로 넣는 것이 바로 여기에 적힌 이름이다.

version
패키지의 버전
하나의 패키지는 그 안의 코드 등이 개선될수록 버전이 업데이트되는데 바로 위의 name 필드와 이 version 필드를 결합하면 특정 패키지의 특정 버전을 나타낼 수 있다.

description
패키지에 대한 설명
패키지를 검색할 때 여기 있는 내용도 검색 기준으로 활용되기 때문에 자신의 패키지가 잘 검색되도록 하려면 여기에 알맞은 설명을 써두는 게 좋다.

keywords
패키지에 대한 키워드들
우리가 SNS에서 이미지를 올릴 때 함께 적는 해시태그 같은 거라고 생각하면 된다. keywords도 description처럼 검색 기준으로 활용되기 때문에 적절한 키워드들을 써주면 좋다.

homepage
패키지 관련 사이트의 URL
패키지 관련 커뮤니티의 홈페이지 주소가 있는 경우가 많다.

bugs
패키지를 사용하다가 발생하는 버그들을 신고할 수 있는 URL이나 이메일 주소가 적혀있다

license
패키지의 라이센스 정보가 담겨있다. 패키지가 가질 수 있는 라이센스의 종류에 대해 알고 싶다면 이 링크를 참조

repository
이 패키지의 코드가 관리되고 있는 레포지토리(repository)의 주소

scripts
scripts 필드는 특히 길이가 긴 명령어를 즐겨찾기해두고 좀 더 편하게 호출하기 위해 사용하는 필드
참고[https://docs.npmjs.com/cli/v9/using-npm/scripts]

참고
코드잇

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

소중한 정보 잘 봤습니다!

답글 달기