Process.platform zwraca „win32” dla Windows. W systemie Windows katalogiem domowym użytkownika może być C: \ Users [NAZWA UŻYTKOWNIKA] lub C: \ Documents and Settings [NAZWA UŻYTKOWNIKA], w zależności od używanej wersji systemu Windows. W Uniksie to nie jest problem.
214
Odpowiedzi:
Jak wspomniano w nowszej odpowiedzi , preferowanym sposobem jest teraz:
[Oryginalna odpowiedź] : dlaczego nie użyć
USERPROFILE
zmiennej środowiskowej w win32?źródło
path.resolve()
może zapewnić pewną normalizację pod względem ukośników końcowych, potencjalnie nieparzystych ukośników do przodu / do tyłu itp. (zwłaszcza jeśli masz na myśli operacje na plikach, po otrzymaniu tych informacji)os.homedir()
został dodany przez ten PR i jest częścią publicznej wersji 4.0.0 nodejs.Przykładowe użycie:
źródło
os.homedir()
jest to całkiem nowa, cholerna zabawka.const os = require('os');
też dodaćCóż, bardziej dokładne byłoby poleganie na funkcji, a nie na wartości zmiennej. Zwłaszcza, że istnieją 2 możliwe zmienne dla systemu Windows.
EDYCJA : jak wspomniano w nowszej odpowiedzi, https://stackoverflow.com/a/32556337/103396 jest właściwą drogą do przejścia (
require('os').homedir()
).źródło
\users\name
a USERPROFILE mac:\users\name
. Ta metoda nie jest tak dokładna i niezawodna jak @maerics 'Posługiwać się
osenv.home()
. Jest utrzymywany przez isaacs i myślę, że jest używany przez sam npm.https://github.com/isaacs/osenv
źródło
oshome
używaos-homedir
pod maską, jeśli chcesz tylko tę funkcjonalność.źródło