Process.platform devuelve "win32" para Windows. En Windows, el directorio de inicio de un usuario puede ser C: \ Users [USERNAME] o C: \ Documents and Settings [USERNAME] según la versión de Windows que se esté utilizando. En Unix esto no es un problema.
214

Respuestas:
Como se mencionó en una respuesta más reciente , la forma preferida ahora es simplemente:
[Respuesta original] : ¿Por qué no usar la
USERPROFILEvariable de entorno en win32?fuente
path.resolve()podría proporcionar cierta normalización en términos de barras al final, lo que podría extraña adelante / barras invertidas, etc ... (sobre todo si se tiene en cuenta las operaciones de archivo, después de recibir esta información)os.homedir()fue agregado por este RP y es parte de la versión pública 4.0.0 de nodejs.Ejemplo de uso:
fuente
os.homedir()es un juguete bastante nuevo.const os = require('os');tambiénBueno, sería más preciso confiar en la función y no en un valor variable. Especialmente porque hay 2 posibles variables para Windows.
EDITAR : como se menciona en una respuesta más reciente, https://stackoverflow.com/a/32556337/103396 es el camino correcto a seguir (
require('os').homedir()).fuente
\users\namey USERPROFILE lo ha hechoc:\users\name. Entonces, este método no es tan preciso y robusto como @maerics 'Uso
osenv.home(). Lo mantiene isaacs y creo que lo usa npm.https://github.com/isaacs/osenv
fuente
oshomeutilizaos-homedirdebajo del capó, si solo quieres esa funcionalidadfuente