process.cwd()와 __dirname의 차이점은 무엇입니까?
사이에 무슨 차이가 있습니까?
console.log(process.cwd())
그리고.
console.log(__dirname);
저는 둘 다 비슷한 맥락에서 사용되는 것을 보았습니다.
process.cwd()
현재 작업 디렉터리를 반환합니다.
즉, 사용자가 호출한 디렉토리입니다.node
지휘권
__dirname
JavaScript 소스 코드 파일이 들어 있는 디렉터리의 디렉터리 이름을 반환합니다.
노드 js 문서에 따라 process.cwd()
cwd
전역 객체의 한 방법입니다.process
Node.js 프로세스의 현재 작업 디렉터리인 문자열 값을 반환합니다.
노드 js 문서에 따라 __dirname
문자열 값으로 사용되는 현재 스크립트의 디렉터리 이름입니다. __dirname
는 실제로 전역이 아니라 각 모듈에 대해 로컬입니다.
예를 들어 설명하겠습니다.
가 있다고 가정하면,main.js
내부에 있는 파일C:/Project/main.js
러닝node main.js
두 값 모두 동일한 파일을 반환합니다.
또는 단순히 다음과 같은 폴더 구조로
Project
├── main.js
└──lib
└── script.js
main.js
console.log(process.cwd())
// C:\Project
console.log(__dirname)
// C:\Project
console.log(__dirname === process.cwd())
// true
우리가 다른 파일을 가지고 있다고 가정합니다.script.js
프로젝트의 하위 디렉터리에 있는 파일.C:/Project/lib/script.js
러닝node main.js
필요한 것은script.js
main.js
require('./lib/script.js')
console.log(process.cwd())
// C:\Project
console.log(__dirname)
// C:\Project
console.log(__dirname === process.cwd())
// true
script.js
console.log(process.cwd())
// C:\Project
console.log(__dirname)
// C:\Project\lib
console.log(__dirname === process.cwd())
// false
간단히 다음과 같이 말할 수 있습니다.
process.cwd()
노드 프로세스를 실행하는 디렉터리 값을 반환하는 반면
__dirname
현재 실행 중인 파일이 있는 디렉터리 값을 반환합니다.
각각의 범위를 알면 더 쉽게 기억할 수 있습니다.
process
이라node
의 전역 개체이며 노드가 실행 중인 위치를 반환합니다.
__dirname
이라module
의 속성이며 모듈의 파일 경로를 나타냅니다.노드에서는 하나의 모듈이 하나의 파일에 상주합니다.
마찬가지로, 는 또 다른 것입니다.module
의 속성으로, 모듈의 파일 이름을 보유합니다.
$find proj
proj
proj/src
proj/src/index.js
$cat proj/src/index.js
console.log("process.cwd() = " + process.cwd());
console.log("__dirname = " + __dirname);
$cd proj; node src/index.js
process.cwd() = /tmp/proj
__dirname = /tmp/proj/src
언급URL : https://stackoverflow.com/questions/9874382/whats-the-difference-between-process-cwd-vs-dirname
'it-source' 카테고리의 다른 글
SQL Server와 같은 join in from 절을 사용하여 select 절에서 Postgresql 하위 쿼리를 수행하는 방법은 무엇입니까? (0) | 2023.05.21 |
---|---|
선택한 ComboBox 항목에 사용할 이벤트 처리기(선택한 항목을 반드시 변경할 필요는 없음) (0) | 2023.05.21 |
PowerShell에서 경로 다시 로드 (0) | 2023.05.21 |
MVC 레이저 마크업에서 쿼리 문자열 매개 변수를 가져오는 방법은 무엇입니까? (0) | 2023.05.21 |
오류: 모듈을 입력합니다.__init__()는 최대 2개의 인수를 사용합니다(3개가 주어짐). (0) | 2023.05.21 |