sourcecode

Node.js - 플랫폼에 구애받지 않는 방법으로 홈 디렉토리 찾기

copyscript 2023. 5. 29. 11:07
반응형

Node.js - 플랫폼에 구애받지 않는 방법으로 홈 디렉토리 찾기

Process.platform은 Windows용으로 "win32"를 반환합니다.윈도우즈에서 사용자의 홈 디렉토리는 C:\Users[USERNAME] 또는 C:일 수 있습니다.\문서 및 설정[사용 중인 Windows 버전에 따라 [USERNAME]이(가) 달라집니다.Unix에서 이것은 문제가 되지 않습니다.

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

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에는 두 가지 변수가 있을 수 있습니다.

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

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

사용하다osenv.home()아이작스에서 유지하고 있으며, NPM 자체에서 사용하는 것으로 알고 있습니다.

https://github.com/isaacs/osenv

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

경우에 따라 다음을 사용합니다.

this.process.env.USERPROFILE

또는

this.nw.process.env.USERPROFILE

즉, 프로세스 전에 이것 또는 이것을 추가합니다.nw

언급URL : https://stackoverflow.com/questions/9080085/node-js-find-home-directory-in-platform-agnostic-way

반응형