Node.js - Найти домашнюю директорию в агностическом режиме платформы

Process.platform возвращает "win32" для Windows. В Windows домашний каталог пользователя может быть C:\Users [USERNAME] или C:\Documents and Settings [USERNAME] в зависимости от используемой версии Windows. В Unix это не проблема.

Ответ 1

Почему бы не использовать переменную среды USERPROFILE на win32?

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

EDIT: как упоминалось в более позднем ответе, fooobar.com/questions/55532/... - это правильный путь (require('os').homedir()).

Ответ 2

os.homedir() был добавлен этим PR и является частью публичной версии 4.0.0 nodejs.

Ответ 3

Ну, точнее было бы полагаться на функцию, а не на переменную. Тем более, что для Windows существуют две возможные переменные.

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

EDIT: как упоминалось в более позднем ответе, fooobar.com/questions/55532/... - это правильный путь (require('os').homedir()).

Ответ 4

Используйте osenv.home(). Он поддерживается isaacs, и я полагаю, что он используется самим npm.

https://github.com/isaacs/osenv