CJS(CommonJS) 및 MJS(ES 모듈)라는 용어는 JavaScript에서 코드를 재사용 가능한 구성 요소로 구성하는 데 사용되는 두 가지 모듈 시스템을 나타냅니다. . 두 가지를 비교하면 다음과 같습니다.
1. 커먼JS(CJS)
-
구문: CommonJS는 require()를 사용하여 모듈을 로드하고 module.exports 또는 내보내기를 사용하여 내보냅니다.
-
사용처: ES 모듈 도입 이전에는 Node.js에서 주로 사용했던 모듈 시스템입니다.
-
동기 로딩: CommonJS 모듈은 동기적으로 로드됩니다. 즉, 모듈이 로드될 때까지 실행이 차단됩니다. 이는 서버 측 애플리케이션에 이상적이지만 비동기 로딩이 선호되는 클라이언트 측 코드에는 적합하지 않습니다.
-
예:
// Import
const fs = require('fs');
// Export
module.exports = function () {
console.log("Hello from CJS");
};
로그인 후 복사
2. ES 모듈(MJS)
-
구문: ES 모듈은 가져오기 및 내보내기 문을 사용합니다.
-
사용 대상: 최신 JavaScript 환경, 브라우저와 Node.js 모두(.mjs 확장자를 사용하거나 package.json에서 "type": "module" 사용).
-
비동기 로딩: ES 모듈은 비동기 로딩되므로 클라이언트측 환경에 더 적합합니다.
-
예:
// Import
import fs from 'fs';
// Export
export function greet() {
console.log("Hello from MJS");
}
로그인 후 복사
주요 차이점:
-
로드 메커니즘:
-
CJS: 모듈은 동기식으로 로드됩니다.
-
MJS: 모듈은 비동기식으로 로드되므로 특정 시나리오(특히 브라우저에서)에서 차단되지 않고 더 효율적입니다.
-
구문:
-
CJS: require() 및 module.exports를 사용합니다.
-
MJS: 가져오기 및 내보내기를 사용합니다.
-
호환성:
-
CJS: Node.js에서 광범위하게 지원되지만 브라우저와의 호환성은 낮습니다(번들러 없음).
-
MJS: ES6 모듈 표준에 맞춰 최신 브라우저와 Node.js(버전 12 이상)에서 기본 지원됩니다.
-
기본 내보내기:
-
CJS: 객체나 함수를 모듈로 직접 내보낼 수 있습니다.
-
MJS: 명명된 내보내기와 기본 내보내기를 모두 지원하므로 여러 함수나 값을 더 유연하게 내보낼 수 있습니다.
사용 시기:
-
CJS(CommonJS): CommonJS 모듈 시스템을 기반으로 하는 기존 Node.js 프로젝트 또는 기존 라이브러리로 작업하는 경우.
-
MJS(ES 모듈): 특히 클라이언트측 개발이나 최신 런타임을 대상으로 하는 Node.js 프로젝트를 위한 최신 애플리케이션을 구축하는 경우.
현대 개발에서는 ES 모듈이 표준이 되고 있지만 많은 레거시 프로젝트는 여전히 CommonJS에 의존하고 있습니다.
위 내용은 CJS와 MJS의 차이점을 이해합시다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!