Node.js에서 현재 스크립트의 경로를 얻으려면 어떻게 해야하나요?

1개월 전 질문 1개월 전 토론 14 views

Node.js에서 현재 스크립트의 경로를 얻으려면 어떻게 해야하나요?

process.cwd()를 쓰면 스크립트가 호출된 디렉토리가 나오던데요.

예를 들어 /home/test라고 하면

node /home/test/dir/file.js

를 실행하면 /home/test/가 나오는데요.

/home/test/dir/를 구하려면 어떻게 하나요?

node.js

2022-05-16 16:20

3개의 해답

제가 아는 걸로는 __filename과 __dirname 모듈 레벨 변수을 쓰면 되는데요.

 

__filename은 현재 모듈의 파일 이름입니다.

다시 말해 현재 모듈 파일의 절대 경로입니다.

예를 들어 /home/test/dir/file.js 입니다.

 

__dirname은 현재 모듈의 디렉토리 이름입니다.

예를 들어 /home/test/dir 입니다.


2022-05-16 16:25

기본적으로 아래와 같이 하면 됩니다.

fs.readFile(path.resolve(__dirname, 'settings.json'), 'UTF-8', callback);

'/' 또는 '\'로 concatenating하는 대신 resolve()를 쓰세요.

그렇지 않으면 cross-platform 문제가 발생합니다.

참고로 __dirname은 모듈 또는 포함된 스크립트의 로컬 경로입니다.

기본 스크립트의 경로를 알아야 하는 플러그인을 작성하는 경우 다음과 같습니다.

require.main.filename

또는 폴더 이름을 가져오려면

require('path').dirname(require.main.filename)


2022-05-16 16:28

__dirname을 쓰세요


2022-05-16 16:28

해결방법이나 팁을 알고 계신다면


© 2022 pinfo. All rights reserved.