Suzie's Blog

[NodeJS] CJS vs ESM | ESM을 사용하고 싶다면? 본문

개발

[NodeJS] CJS vs ESM | ESM을 사용하고 싶다면?

Iuna 2023. 8. 31. 16:09
반응형
SMALL

Node documentation에서 볼 수 있는 CJS 그리고 ESM

차이점이 뭘까?

 

Node docs에서 CJS포멧 또는 ESM 포멧을 선택할 수 있다. (출처 : node docs)

CSJ는 Commonjs를 줄인 말이다. require 메서드를 사용하여 node modules, native node modules, 또는  modules에 접근 할 수 있다.

 

CSJ 예시

const fs = require('fs/promises');

 

시간이 지나면서 ESM (EcmaScript Method)도 나오게 되었다. ESM은 require대신 import를 사용하여 접근하는 것이고 이 방법은 프론트엔드 그리고 백엔드에게 일관성을 준다 (프론트에서 import를 사용하여 modules에 접근하는 것 처럼)

 

ESM 예시

import * as fs from 'fs/promises';

 

ESM을 사용하는 방법

 

CJS는 그냥 사용하면 적용 가능하지만 ESM같은 겨우는 package.json에 접근하여 아래와 같이 처리를 해 주어야 한다.

 

예시

{
  "name": "learning-npm",
  "version": "1.0.0",
  "description": "I'm learning npm",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "mememe",
  "license": "ISC",
  "dependencies": {
    "sillyname": "^0.1.0",
    "superheroes": "^3.0.0"
  }
}

위의 예시를 보면 main밑에 

"type" : "module"이라고 된 부분이 있는데 바로 저 부분을 추가해주면 ESM 메서드를 사용 할 수 있다.

반응형
LIST