[node.js] Node.js-플랫폼에 관계없이 홈 디렉토리 찾기

Process.platform은 Windows의 경우 “win32″를 반환합니다. Windows에서 사용중인 Windows 버전에 따라 사용자의 홈 디렉토리는 C : \ Users [USERNAME] 또는 C : \ Documents and Settings [USERNAME] 일 수 있습니다. 유닉스에서는 이것이 문제가되지 않습니다.



답변

더 최근의 답변 에서 언급했듯이 선호하는 방법은 다음과 같습니다.

const homedir = require('os').homedir();

[원래 답변] : USERPROFILEwin32 에서 환경 변수를 사용하지 않는 이유는 무엇 입니까?

function getUserHome() {
  return process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'];
}


답변

os.homedir()이 PR의해 추가 되었으며 nodejs의 공개 4.0.0 릴리스의 일부입니다.


사용법 예 :

const os = require('os');

console.log(os.homedir());


답변

변수 값이 아닌 기능에 의존하는 것이 더 정확합니다. 특히 Windows에는 2 가지 가능한 변수가 있습니다.

function getUserHome() {
  return process.env.HOME || process.env.USERPROFILE;
}

편집 : 최신 답변에서 언급했듯이 https://stackoverflow.com/a/32556337/103396 이 올바른 방법입니다 ( require('os').homedir()).


답변

사용하십시오 osenv.home(). 그것은 isaacs에 의해 유지되며 npm 자체에서 사용된다고 생각합니다.

https://github.com/isaacs/osenv


답변

getUserRootFolder() {
  return process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE;
}


답변