Process.platformは、Windowsの場合「win32」を返します。 Windowsでは、使用しているWindowsのバージョンに応じて、ユーザーのホームディレクトリはC:\ Users [USERNAME]またはC:\ Documents and Settings [USERNAME]になります。 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());
まあ、変数値ではなく機能に依存する方がより正確です。特に、Windowsには2つの変数が考えられます。
function getUserHome() {
return process.env.HOME || process.env.USERPROFILE;
}
編集:最近の回答で述べたように、 https://stackoverflow.com/a/32556337/103396 正しい方法です(require('os').homedir()
)。
osenv.home()
を使用します。 isaacsによって維持されており、npm自体によって使用されていると思います。
getUserRootFolder() {
return process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE;
}