CommonJS 및 ESM 사용을 위한 Node.js 모듈 생성

2759 단어 esmjavascriptnpmnode
지난 주에 나는 미래의 프로젝트를 위해 간단한 스톱워치 모듈을 만들고 싶은 충동을 느꼈습니다. 나는 최근에 ECMAScript modules (ESM)을 만드는 일에 발을 들였고, 앞으로 내가 만든 모든 모듈이 CommonJS나 ESM에 고유하게 느껴지도록 하고 싶었습니다. 매우 간단합니다.

대부분의 골격 형태에서 내 구조는 다음과 같습니다.

src/
└── index.cjs
index.js
index.mjs
package.json


모듈에 대한 모든 작업은 src/ 에 있으며 두 개의 루트 색인 파일은 상위 모듈에서 사용할 내보내기를 제공합니다. 위 파일의 관련 부분은 다음과 같습니다.

src/index.cjs:

module.exports = class SomeClass {
    // code here
}


index.js:

const SomeClass = require('./src/index.cjs');

module.exports = SomeClass;


index.mjs:

import SomeClass from './src/index.cjs';

export default SomeClass;


패키지.json:

"main": "./index.js",
"exports": {
    "require": "./index.js",
    "import": "./index.mjs"
}


그리고 그게 다야! 이는 확실히 단일 내보내기 이상으로 확장될 수 있으며 명명된 내보내기도 포함할 수 있습니다.

보너스: here은 내가 만든 스톱워치 모듈입니다.

좋은 웹페이지 즐겨찾기