Process.platform renvoie "win32" pour Windows. Sous Windows, le répertoire de base d'un utilisateur peut être C:\Utilisateurs [NOM D'UTILISATEUR] ou C:\Documents and Settings [NOM D'UTILISATEUR] en fonction de la version de Windows utilisée. Sous Unix, ce n'est pas un problème.
Comme mentionné dans réponse plus récente , la méthode préférée est maintenant simplement:
const homedir = require('os').homedir();
[Réponse d'origine] : Pourquoi ne pas utiliser la variable d'environnement USERPROFILE
sur win32?
function getUserHome() {
return process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'];
}
os.homedir()
a été ajouté par ce PR et fait partie de la version 4.0.0 publique de nodejs.
Exemple d'utilisation:
const os = require('os');
console.log(os.homedir());
Eh bien, il serait plus précis de s'appuyer sur la fonctionnalité et non sur une valeur variable. D'autant qu'il y a 2 variables possibles pour Windows.
function getUserHome() {
return process.env.HOME || process.env.USERPROFILE;
}
EDIT: comme mentionné dans une réponse plus récente, https://stackoverflow.com/a/32556337/103396 est la bonne voie à suivre (require('os').homedir()
).
Utilisez osenv.home()
. Il est maintenu par isaacs et je crois qu’il est utilisé par npm lui-même.
getUserRootFolder() {
return process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE;
}