5가지 기능을 사용한 NodeJS 프로젝트에 index.js 파일이 있다고 상상해 보세요. 그러나 이러한 함수 중 두 개는 다른 파일에서도 사용될 수 있습니다. 따라서 하나의 파일 대신 프로젝트에 세 개의 파일을 만듭니다.
여기서 이러한 각 Javascript 파일은 모듈이며, 클래스/함수를 내보내고 가져오는 방법은 기본적으로 모듈 시스템입니다. 모듈 시스템을 사용하면 코드를 분할하고 포함할 수 있으며 필요할 때마다 당사나 다른 개발자가 작성한 코드를 가져올 수 있습니다.
이러한 모듈은 프로젝트에 존재하는 Javascript 파일이 아닙니다. 프로젝트에 종속성으로 설치한 외부 패키지일 수도 있습니다. 또한 NodeJS에는 설치와 함께 사용 가능하고 외부 종속성을 추가하지 않고도 가져올 수 있는 http, fs 등과 같은 일부 내장 모듈이 있습니다.
Node에서는 두 가지 모듈 시스템이 사용됩니다.
이전 블로그에서 주방-셰프-웨이터 예시를 읽어보셨을 겁니다. 마찬가지로 모듈을 비교해 보면 CommonJS는 레시피를 검색하고 찾는 데 필요한 오래된 대형 레시피 책인 반면, ESM은 레시피를 볼 수 있는 새로운 디지털 앱이라고 상상해 보세요.
CommonJS(CJS)
// Export module.exports = function SayHello() { console.log("Hello World!"); }; // Import const GetHello = require("./hello-script.js"); SayHello(); // "Hello World!"
ECMA스크립트 모듈(ESM)
// Export export function SayHello() { console.log("Hello World!"); } // Import import { SayHello } from "./hello-script.js"; SayHello();
구문의 주요 차이점:
CJS: module.exports / require
ESM: 내보내기/가져오기
{ type: "module"; }
때때로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!