url.fileURLToPath와 path.resolve는 각각 다른 방식으로 파일 경로를 처리하며, 서로 다른 목적을 가지고 있습니다.
Node.js 환경에서 파일 경로를 다룰 때 유용하지만, 사용하는 상황에 따라 차이가 있습니다.
1. url.fileURLToPath
- url.fileURLToPath는 URL 객체나 file URL 문자열을 로컬 파일 경로로 변환합니다.
- 주로 file:// 스킴으로 시작하는 파일 URL을 일반 파일 시스템 경로로 변환할 때 사용됩니다. 예를 들어, URL 객체를 통해 파일 경로를 설정하거나 읽을 때 유용합니다.
import { fileURLToPath } from 'url';
const fileURL = new URL('file:///Users/example/path/to/file.txt');
const filePath = fileURLToPath(fileURL);
console.log(filePath); // '/Users/example/path/to/file.txt'
- 주요 사용처: ES 모듈 환경에서 import.meta.url을 사용할 때, URL을 파일 시스템 경로로 변환해야 하는 경우 유용합니다.
2. path.resolve
- path.resolve는 상대 경로를 절대 경로로 변환하는 함수로, 주어진 경로 조각들을 조합해 현재 파일 시스템에 맞는 절대 경로를 반환합니다.
- 주로 상대 경로를 절대 경로로 변환하거나, 여러 경로를 하나로 합칠 때 사용됩니다.
import path from 'path';
const absolutePath = path.resolve('src', 'components', 'MyComponent.vue');
console.log(absolutePath); // 예: '/Users/example/project/src/components/MyComponent.vue'
- 주요 사용처: 프로젝트 루트 경로 또는 특정 디렉토리를 기준으로 여러 경로를 조합할 때 자주 사용됩니다.
차이점 요약
기능 |
url.fileURLToPath | path.resolve |
목적 | URL 객체나 file URL을 파일 경로로 변환 | 상대 경로를 절대 경로로 변환하거나 경로를 조합 |
주요 사용처 | 파일 URL(file://...)을 파일 시스템 경로로 변환 | 프로젝트 내에서 여러 경로를 합치고 절대 경로로 변환 |
필요인자 형식 | URL 객체 또는 file:// 형식의 문자열 | 파일 경로 조각(문자열) |
사용 예시 | fileURLToPath(new URL('file:///path/to/file.txt')) | path.resolve('src', 'components', 'MyComponent.vue') |