的过程。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'];
}
好吧,依赖于特征而不是变量值会更准确。特别是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;
}
在某些情况下尝试使用这个:
this.process.env.USERPROFILE
or
this.nw.process.env.USERPROFILE
也就是加上这个或者这个。加工前Nw
推荐文章
- Node.js -以平台不可知的方式查找主目录
- 为什么Node.js是单线程的?
- 比较mongoose _id和字符串
- .js和.mjs文件有什么区别?
- 如何修复npm UNMET PEER DEPENDENCY警告?
- 遍历一个目录中的每个文件
- 用ReactJS在localStorage中存储JWT安全吗?
- 用于XML解析的最佳节点模块
- Firebase Firestore“引用”数据类型的好处是什么?
- 如何让一个node.js应用程序永久运行?
- 在npm install grunt——save-dev中-save-dev是什么意思
- 在Express.js中使用next()将变量传递给下一个中间件
- 如何Polyfill节点核心模块在webpack 5
- Router.use()需要中间件函数,但是得到了一个Object
- 将npm降级为旧版本