2.0.0 • Published 6 years ago
home v2.0.0
home
A tiny utility to get the home directory, or resolve a path begins with '~', with cross-platform compatibility.
Since 2.0.0, home only supports node >= 5.12.0
Install
$ npm i homeUsage
const home = require('home')
home() // Mac && Linux: '/Users/kael', Windows: '\\Users\\kael'
home.resolve('~') // '/Users/kael'
const some_path = '~/workspace'
home.resolve(some_path) // '/Users/kael/workspace'
home.resolve(some_path, 'abc') // '/Users/kael/workspace/abc'home()
Returns path the home directory specified by operating system.
home.resolve(from..., to)
Resolves to to an absolute path, if to begins with '~', it will be cooked before path.resolve()d.
home.resolve('~/file') // 'Users/kael/file'The usage of home.resolve is very similar to path.resolve
Another way to think of it is as a sequence of cd commands in a shell.
home.resolve()
// -> current directory
home.resolve('foo/bar', '~/file/', '..', 'a/../subfile')
// -> '/Users/kael/subfile'Is equivalent to:
home.resolve('foo/bar', '/Users/kael/file/', '..', 'a/../subfile')Is similar to:
cd foo/bar
cd ~/file/
cd ..
cd a/../subfile
pwdWhat about home.relative(), home.join() ?
For now, home doesn't support those, which I thought is unnecessary to make this module too complicated.
I'd rather home.resolve() the directories, before path.join().
var dir = '~/dir'
dir = home.resolve(dir)
path.join(dir, './abc')License
May be freely distributed under the MIT license.
Copyright (c) Kael Zhang and other contributors.