的过程。Windows平台返回"win32"。在Windows上,用户的主目录可能是C:\Users[USERNAME]或C:\Documents and Settings[USERNAME],这取决于正在使用的Windows版本。在Unix上,这不是问题。


当前回答

正如在最近的一个回答中提到的,现在首选的方式很简单:

const homedir = require('os').homedir();

[原答案]为什么不在win32上使用USERPROFILE环境变量?

function getUserHome() {
  return process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'];
}

其他回答

在某些情况下尝试使用这个:

this.process.env.USERPROFILE

or

this.nw.process.env.USERPROFILE

也就是加上这个或者这个。加工前Nw

好吧,依赖于特征而不是变量值会更准确。特别是Windows有两个可能的变量。

function getUserHome() {
  return process.env.HOME || process.env.USERPROFILE;
}

编辑:正如在最近的回答中提到的,https://stackoverflow.com/a/32556337/103396是正确的方法(require('os').homedir())。

使用osenv.home()。它由isaacs维护,我相信npm自己也在使用。

https://github.com/isaacs/osenv

os.homedir()由此PR添加,是nodejs公共4.0.0版本的一部分。


使用示例:

const os = require('os');

console.log(os.homedir());
getUserRootFolder() {
  return process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE;
}