的过程。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'];
}
其他回答
os.homedir()由此PR添加,是nodejs公共4.0.0版本的一部分。
使用示例:
const os = require('os');
console.log(os.homedir());
使用osenv.home()。它由isaacs维护,我相信npm自己也在使用。
https://github.com/isaacs/osenv
在某些情况下尝试使用这个:
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())。
正如在最近的一个回答中提到的,现在首选的方式很简单:
const homedir = require('os').homedir();
[原答案]为什么不在win32上使用USERPROFILE环境变量?
function getUserHome() {
return process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'];
}
推荐文章
- 为什么在节点REPL中没有定义__dirname ?
- 在Node.js中克隆对象
- Node.js中的process.env.PORT是什么?
- js的Mongoose.js字符串到ObjectId函数
- ELIFECYCLE Node.js错误是什么意思?
- 如何完全卸载Ubuntu中的nodejs, npm和node
- 在猫鼬模式中添加created_at和updated_at字段
- 我如何把变量javascript字符串?
- 如何强制tsc忽略node_modules文件夹?
- NPM全局安装“无法找到模块”
- MongoDB和Mongoose的区别
- 如何使用Express.js指定HTTP错误码?
- 通过npm安装Twitter Bootstrap的目的?
- 将文件中的字符串替换为nodejs
- 事件循环上下文中微任务和宏任务的区别