개요

호환성 문제로 require을 사용해야할 수도 있지만, 이전 환경과의 호환성이 필요 없는 최신 환경에서는 대부분의 경우 import 문을 사용하는것이 바람직하다고 한다.(ChatGPT 왈)

때문에 Node.js 환경에서 import 문을 사용하기 위해서 필요한 과정을 정리해 본다.

사용법

가장 먼저(?) package.json에 type 값을 지정해주면 끝.

"type":"module"

주의사항

require을 사용할땐 경로에 확장자를 생략해도 동작하지만,

export를 사용한 로컬 패키지에 접근하기 위해서 import 문을 사용할때는 경로에 확장자까지 필수적으로 입력해야한다는 점을 잊지 말자. 아니면 ERR_MODULE_NOT_FOUND 를 마주하게 될 것이다.

// CommonJS
// example.js
const exampleFunction = () => { ... };
module.exports = exampleFunction;

// 다른 파일에서 사용할 때
const exampleFunction = require('./example'); // 확장자 유무 상관없이 동작

// "type":"module"
// example.js
const exampleFunction = () => { ... };
export default exampleFunction;

// 다른 파일에서 사용할 때
import exampleFunction from './example.js';