[Node.js] __dirname is not defined (ES6)

Suyeon Pi·2021년 10월 27일
1

CommonJS

console.log(__dirname); 

파일명을 제외한 현재 노드를 실행하는 파일의 절대경로가 나온다.

ES6 modules

하지만 CommonJS가 아닌 ES6의 "type": "module" 를 사용할 경우 다음과 같은 에러가 발생한다.
ReferenceError: __dirname is not defined

ES모듈에는 __dirname 변수가 없어서 다음과 같이 __dirname변수를 만들어줘야한다.

import path from 'path';
import { fileURLToPath } from 'url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

console.log(__dirname);
profile
Stay hungry, Stay foolish!

0개의 댓글