path.resolve() 예제 이해가 안되요

17.10.15 23:26 작성 조회수 1.05k

0

path.resolve('/foo/bar', './baz'); // return: '/foo/bar/baz' - 순서대로 만들어지고 path.resolve('/foo/bar','/tmp/file/'); // return: '/tmp/file' - 이건 왜 /foo/bar가 없나요? './tmp/file' 여기서 './' 현재 디렉토리를 정의해서 더이상 왼쪽으로 찾아가지 않는건가요? 웹팩 실행 시 path.resolve(__dirname, '/dist'); - __dirname은 './' 이거랑 같은 의미인가요? path.resolve('/foo', '/dist'); - 이렇게 수정하면 아래와 같은 에러는 왜 생기는건가요? Error: EACCES: permission denied, mkdir '/foo'

답변 2

·

답변을 작성해보세요.

0

아 이해했습니다 고맙습니다 : ) 혹시 그럼 마지막path.resolve(‘/foo’, ‘/dist’); 이부분은 왜 안되는걸까요? 루트 경로인 /dist 에 되는거 아닌가요?

0

박찬민 박님의 프로필

박찬민 박

2017.10.16

강사님께서 첨부해주신 링크를 보니깐 resolve는 가장 오른쪽 인자부터 시작해서 절대 경로가 만들어질때까지 명시된 경로를 합쳐나가는것 같습니다. 그래서 2번째 질문에서 결과가 /tmp/file로 나오는것은 루트 경로인 ' / '까지 도달해서 절대경로가 만들어졌기 때문에 /foo/bar를 경로에 합치는 작업은 하지 않은것 같습니다. (질문에서 ./tmp/file 이라고 하셨는데 다시 보시면 /tmp 앞에는 . 이 없습니다.) __dirname는 현재 모듈의 현재 폴더 위치라고 하네요.(https://nodejs.org/docs/latest/api/modules.html#modules_dirname) 덕희님 질문 덕에 저도 자료를 찾아보면서 resolve를 좀 알게되었네요 ㅎㅎ 감사합니다.