Process.platform возвращает "win32" для Windows. В Windows домашний каталог пользователя может быть C:\Users [USERNAME] или C:\Documents and Settings [USERNAME] в зависимости от используемой версии Windows. В Unix это не проблема.
Node.js - Найти домашнюю директорию в агностическом режиме платформы
Ответ 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.