CommonJ는 ES6 가져오기와 얼마나 다른가요?
4407 단어 commonjsjavascriptes6modules
CommonJs 모듈.
CommonJs는 require 및 module.exports를 사용하는 Node.js의 기본 모듈 시스템입니다. 아래는 예시입니다.
// Importing modules
const fs = require('fs');
const fileDelete = require('./fileDeleter');
const fileName = require('./fileNamer');
const writeFile = (data) => {
return fs.writeFileSync(fileName, data);
}
// Exporting writeFile module
modules.exports = writeFile;
require를 사용하면 필요한 모듈만 선택적으로 로드할 수 없습니다. 이것은 위의 예제에서 fileDelete 모듈이 필요하지 않거나 어디에서나 사용되지 않더라도 임포트된다는 것을 의미합니다. 또한 모듈 가져오기는 동기식이므로 fs 및 fileDelete 모듈을 가져오기 전에 fileName 모듈을 가져올 수 없으며 fileDelete 가져오기에 실패하면 프로그램에서 사용되지 않더라도 런타임 오류가 발생합니다. CommonJS 모듈은 node.js 서버에 대한 선택입니다.
ECMAScript 모듈
ECMAScript 모듈은 비교적 최신이며 가져오기 및 내보내기를 사용합니다. 아래는 CommonJ 예제를 위에서 ESM으로 변환한 것입니다.
// Importing modules
import fs from 'fs';
import fileDelete from './fileDeleter';
import fileName from './fileNamer';
const writeFile = (data) => {
return fs.writeFileSync(fileName, data);
}
// Exporting writeFile module
export default function writeFile;
가져오기를 사용하면 필요한 모듈만 로드합니다. 예를 들어 위의 fileDelete 모듈은 어디에도 사용되지 않기 때문에 가져오지 않습니다. 또한 모듈 가져오기는 비동기식이므로 fs와 fileName을 동시에 가져옵니다. 일반적으로 새 프로젝트에 ESM을 사용하려고 합니다.
... .cjs와 .mjs는 어떻습니까?
.cjs는 CommonJS 모듈의 파일 확장자이고 .mjs는 ECMAScript 모듈의 파일 확장자입니다. Node.js는 기본적으로 .js 파일을 CommonJS 모듈로 취급합니다. "type": "module"을 package.json 파일에 추가하여 이를 변경할 수 있으므로 Node.js 환경 내에서 ECMAScript 모듈(.mjs 파일에 있음)을 사용할 수 있습니다. 이것은 Google ChromeV8이 권장하는 것입니다.
이 정보가 도움이 되었기를 바라며 더 많은 정보를 원하시면 체크아웃JavaScript modules 하십시오.
즐거운 코딩!
Reference
이 문제에 관하여(CommonJ는 ES6 가져오기와 얼마나 다른가요?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mwanjemike/how-different-is-commonjs-require-from-es6-import-hh1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)