Process.platform 为 Windows 返回“win32”。在 Windows 上,用户的主目录可能是 C:\Users[USERNAME] 或 C:\Documents and Settings[USERNAME],具体取决于所使用的 Windows 版本。在 Unix 上,这不是问题。
问问题
136731 次
6 回答
431
正如在最近的回答中提到的,现在首选的方法很简单:
const homedir = require('os').homedir();
[原答案]:为什么不在USERPROFILE
win32上使用环境变量?
function getUserHome() {
return process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'];
}
于 2012-01-31T14:43:47.710 回答
268
os.homedir()
由这个 PR添加并且是 nodejs 的公共 4.0.0 版本的一部分。
示例用法:
const os = require('os');
console.log(os.homedir());
于 2015-09-14T01:57:11.583 回答
82
好吧,依靠特征而不是变量值会更准确。特别是因为 Windows 有 2 个可能的变量。
function getUserHome() {
return process.env.HOME || process.env.USERPROFILE;
}
编辑:正如最近的回答中提到的,https://stackoverflow.com/a/32556337/103396是正确的方法(require('os').homedir()
)。
于 2013-04-22T21:23:29.890 回答
16
使用osenv.home()
. 它由 isaacs 维护,我相信 npm 本身使用它。
于 2014-11-07T21:31:39.937 回答
4
getUserRootFolder() {
return process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE;
}
于 2019-03-31T02:28:08.447 回答
-1
在某些情况下尝试使用这个:
this.process.env.USERPROFILE
或者
this.nw.process.env.USERPROFILE
即在处理之前添加 this 或 this.nw
于 2021-06-23T21:56:18.600 回答