Node.js – 以平台不可知的方式查找主目录

Process.platform为Windows返回“win32”。 在Windows上,用户的主目录可能是C:\ Users [USERNAME]或C:\ Documents and Settings [USERNAME],具体取决于正在使用哪个版本的Windows。 在Unix上这不是问题。

为什么不在win32上使用USERPROFILE环境variables?

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

编辑 :正如在最近的答案中提到的, https://stackoverflow.com/a/32556337/103396是正确的路要走(; require('os').homedir() )。

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

那么依靠这个特性而不是一个variables值会更准确。 尤其是Windows有两个可能的variables。

 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