"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > JavaScript의 패키지, 종속성 및 모듈 이해

JavaScript의 패키지, 종속성 및 모듈 이해

2024-07-29에 게시됨
검색:453

Understanding Package, Dependency, and Module in JavaScript

"패키지", "종속성" 및 "모듈"이라는 용어와 관련하여 약간의 혼동이 있는 것으로 나타났습니다. 프로젝트에서 올바르게 사용하는 데 도움이 되도록 이러한 개념을 명확히 하겠습니다.

패키지

패키지는 특정 기능을 제공하기 위해 함께 묶인 파일 모음입니다. JavaScript 생태계에서 패키지는 일반적으로 npm(Node Package Manager)을 통해 배포됩니다. 패키지에는 일반적으로 다음이 포함됩니다.

  • 하나 이상의 JavaScript 파일
  • 패키지와 해당 종속성을 설명하는 package.json 파일
  • 문서 및 기타 관련 파일

인기 패키지의 예:

  • 반응
  • 표현하다
  • 로다시

의존

종속성은 프로젝트가 올바르게 작동하기 위해 의존하는 패키지입니다. 종속성은 프로젝트의 package.json 파일에 나열되며 npm 또는 Yarn을 사용하여 설치됩니다. 종속성에는 두 가지 유형이 있습니다.

  1. 프로덕션 종속성: 애플리케이션을 프로덕션에서 실행하는 데 필요합니다.

예:

  • express(웹 애플리케이션 프레임워크)
  • 반응(UI 라이브러리)
  • mongoose(MongoDB 객체 모델링 도구)
  • axios(HTTP 클라이언트)
  • 순간(날짜 조작 라이브러리)
  1. 개발 종속성: 개발 중에만 사용됩니다.

예:

  • jest(테스트 프레임워크)
  • 웹팩(모듈 번들러)
  • eslint(린팅 유틸리티)
  • babel(자바스크립트 컴파일러)
  • nodemon(자동 재시작 기능이 있는 개발 서버)
{
  "dependencies": {
    "express": "^4.17.1",
    "react": "^17.0.2",
    "mongoose": "^6.0.12"
  },
  "devDependencies": {
    "jest": "^27.3.1",
    "webpack": "^5.60.0",
    "eslint": "^8.1.0"
  }
}

기준 치수

모듈은 관련 기능을 캡슐화하는 독립적인 코드 단위입니다. JavaScript에서 모듈은 다음과 같습니다.

  • CommonJS 모듈(Node.js에서 사용됨)
  • ES6 모듈(최신 브라우저 및 Node.js에서 지원됨)

내장 Node.js 모듈의 예:

  • fs(파일 시스템 작업)
  • http(HTTP 서버 및 클라이언트)
  • path(파일 경로 조작)
  • crypto(암호화 기능)

프로젝트에서 생성할 수 있는 사용자 정의 모듈의 예:

  • userAuthentication.js
  • databaseConnector.js
  • utilities.js
  • apiRoutes.js

모듈은 코드를 구성하고 이름 충돌을 방지하며 더 나은 코드 재사용을 가능하게 해줍니다.

결론

효과적인 JavaScript 개발을 위해서는 다음 용어를 이해하는 것이 중요합니다.

  • 패키지는 코드 묶음으로 배포됩니다.
  • 종속성은 프로젝트가 프로덕션이나 개발을 위해 의존하는 패키지입니다.
  • 모듈은 프로젝트 또는 패키지 내의 코드 구성 단위입니다.
릴리스 선언문 이 글은 https://dev.to/henrylehd/understanding-package-dependent-and-module-in-javascript-j02?1에서 복제됩니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3