Process.platform возвращает «win32» для Windows. В Windows домашним каталогом пользователя может быть C: \ Users [ИМЯ ПОЛЬЗОВАТЕЛЯ] или C: \ Documents and Settings [ИМЯ ПОЛЬЗОВАТЕЛЯ] в зависимости от того, какая версия Windows используется. В Unix это не проблема.
216
Ответы:
Как упоминалось в более недавнем ответе , предпочтительный способ теперь просто:
[Оригинальный ответ] : почему бы не использовать
USERPROFILE
переменную окружения на win32?источник
path.resolve()
может обеспечить некоторую нормализацию в терминах конечных слэшей, потенциально нечетных прямых / обратных слешей и т. д. (особенно если вы получили файловые операции после получения этой информации)os.homedir()
был добавлен этим PR и является частью общедоступной версии 4.0.0 nodejs.Пример использования:
источник
os.homedir()
это чертовски новая игрушка.const os = require('os');
тожеЧто ж, было бы точнее полагаться на функцию, а не на значение переменной. Тем более, что есть 2 возможные переменные для Windows.
РЕДАКТИРОВАТЬ : как уже упоминалось в более недавнем ответе, https://stackoverflow.com/a/32556337/103396 - это правильный путь (
require('os').homedir()
).источник
\users\name
и USERPROFILE имеетc:\users\name
. Так что этот метод не такой точный и надежный, как @maerics 'Использование
osenv.home()
. Он поддерживается isaacs, и я считаю, что используется самим npm.https://github.com/isaacs/osenv
источник
oshome
используетos-homedir
под капотом, если вы хотите только эту функциональность.источник