더북(TheBook)

filename.mjs

console.log(import.meta.url);
console.log('__filename은 에러');
console.log(__filename);

콘솔

$ node filename.mjs
file:///C:/Users/zerocho/filename.mjs
__filename은 에러
file:///C:/Users/zerocho/filename.mjs:3
console.log(__filename);
            ^

ReferenceError: __filename is not defined in ES module scope
(생략)

CommonJS 모듈에서 사용했던 require 함수나 module 객체는 따로 선언하지 않았음에도 사용할 수 있었습니다. 이것이 어떻게 가능할까요? 바로 노드에서 기본적으로 제공하는 내장 객체이기 때문입니다. 다음 절에서는 내장 객체를 자세히 알아보겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.