> 웹 프론트엔드 > JS 튜토리얼 > NodeJS 모듈 [간단한 설명]

NodeJS 모듈 [간단한 설명]

Susan Sarandon
풀어 주다: 2024-11-25 08:09:14
원래의
538명이 탐색했습니다.

NodeJS Modules [Simple Explanation]

모듈이란 무엇입니까?

5가지 기능을 사용한 NodeJS 프로젝트에 index.js 파일이 있다고 상상해 보세요. 그러나 이러한 함수 중 두 개는 다른 파일에서도 사용될 수 있습니다. 따라서 하나의 파일 대신 프로젝트에 세 개의 파일을 만듭니다.

  • index.js
  • dependent1.js
  • dependent2.js

여기서 이러한 각 Javascript 파일은 모듈이며, 클래스/함수를 내보내고 가져오는 방법은 기본적으로 모듈 시스템입니다. 모듈 시스템을 사용하면 코드를 분할하고 포함할 수 있으며 필요할 때마다 당사나 다른 개발자가 작성한 코드를 가져올 수 있습니다.

이러한 모듈은 프로젝트에 존재하는 Javascript 파일이 아닙니다. 프로젝트에 종속성으로 설치한 외부 패키지일 수도 있습니다. 또한 NodeJS에는 설치와 함께 사용 가능하고 외부 종속성을 추가하지 않고도 가져올 수 있는 http, fs 등과 같은 일부 내장 모듈이 있습니다.

모듈을 내보내거나 가져오려면 어떻게 해야 합니까?

Node에서는 두 가지 모듈 시스템이 사용됩니다.

  1. 커먼JS(CJS)
  2. ECMA스크립트 모듈(ESM)

이전 블로그에서 주방-셰프-웨이터 예시를 읽어보셨을 겁니다. 마찬가지로 모듈을 비교해 보면 CommonJS는 레시피를 검색하고 찾는 데 필요한 오래된 대형 레시피 책인 반면, ESM은 레시피를 볼 수 있는 새로운 디지털 앱이라고 상상해 보세요.

CommonJS(CJS)

  • 기존 모듈 시스템
  • 모듈은 다음과 같은 간단한 형식으로 작성됩니다.
// Export
module.exports = function SayHello() {
  console.log("Hello World!");
};

// Import
const GetHello = require("./hello-script.js");
SayHello(); // "Hello World!"
로그인 후 복사
로그인 후 복사
  • 동기식: 모듈을 차례로 로드합니다.
  • Node.js에서만 작동합니다(브라우저에서 직접 작동하지 않음).

ECMA스크립트 모듈(ESM)

  • 현대적인 모듈 시스템.
  • 이제 모듈이 더욱 구조화되었습니다.
// Export
export function SayHello() {
  console.log("Hello World!");
}

// Import
import { SayHello } from "./hello-script.js";
SayHello();
로그인 후 복사
로그인 후 복사
  • 비동기: 동시에 여러 모듈을 로드합니다.
  • 기본적으로 브라우저와 Node.js에서 작동합니다.

구문의 주요 차이점:
CJS: module.exports / require
ESM: 내보내기/가져오기

내 프로젝트에서 CJS 또는 ESM을 어떻게 구성합니까?

  • 프로젝트의 package.json을 엽니다.
  • 추가:
{
  type: "module";
}
로그인 후 복사
로그인 후 복사
  • 이것은 NodeJS가 .js를 ESM으로 해석하도록 지시합니다. 이것을 추가하지 않으면 NodeJS는 기본적으로 CommonJS로 해석합니다.

Typescript의 모듈:

때때로 ECMAScript 모듈을 사용할 수 있지만 가져온 이전 패키지가 CommonJS로 작성되었습니다. 이러한 경우를 처리하기 위해 Typescript 파일을 ESM 형식으로 작성했더라도 Typescript 파일에서 생성된 출력 Javascript 코드가 공통 형식으로 제공되는지 확인하는 경우가 있습니다.

이를 위해 프로젝트의 tsconfig.json에 컴파일러 옵션을 추가합니다.

// Export
module.exports = function SayHello() {
  console.log("Hello World!");
};

// Import
const GetHello = require("./hello-script.js");
SayHello(); // "Hello World!"
로그인 후 복사
로그인 후 복사

그러면 어떻게 되나요?
module: "commonjs": require 및 module.exports를 사용하는 CommonJS 모듈 시스템을 사용하여 JavaScript를 출력합니다.
target: "es6": 출력 JavaScript가 ES6 구문과 let, const 및 arrow 함수와 같은 기능을 사용하는지 확인합니다.

Typescript 코드 입력:

// Export
export function SayHello() {
  console.log("Hello World!");
}

// Import
import { SayHello } from "./hello-script.js";
SayHello();
로그인 후 복사
로그인 후 복사

Javascript 코드 출력:

{
  type: "module";
}
로그인 후 복사
로그인 후 복사

위 내용은 NodeJS 모듈 [간단한 설명]의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿