Node.js - Find home directory in platform agnostic way

后端 未结 5 971
我寻月下人不归
我寻月下人不归 2020-11-28 01:56

Process.platform returns \"win32\" for Windows. On Windows a user\'s home directory might be C:\\Users[USERNAME] or C:\\Documents and Settings[USERNAME] depending on which v

相关标签:
5条回答
  • 2020-11-28 02:23

    Well, it would be more accurate to rely on the feature and not a variable value. Especially as there are 2 possible variables for Windows.

    function getUserHome() {
      return process.env.HOME || process.env.USERPROFILE;
    }
    

    EDIT: as mentioned in a more recent answer, https://stackoverflow.com/a/32556337/103396 is the right way to go (require('os').homedir()).

    0 讨论(0)
  • 2020-11-28 02:33

    As mentioned in a more recent answer, the preferred way is now simply:

    const homedir = require('os').homedir();
    

    [Original Answer]: Why not use the USERPROFILE environment variable on win32?

    function getUserHome() {
      return process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'];
    }
    
    0 讨论(0)
  • 2020-11-28 02:35
    getUserRootFolder() {
      return process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE;
    }
    
    0 讨论(0)
  • 2020-11-28 02:43

    Use osenv.home(). It's maintained by isaacs and I believe is used by npm itself.

    https://github.com/isaacs/osenv

    0 讨论(0)
  • 2020-11-28 02:44

    os.homedir() was added by this PR and is part of the public 4.0.0 release of nodejs.


    Example usage:

    const os = require('os');
    
    console.log(os.homedir());
    
    0 讨论(0)
提交回复
热议问题