What is resolve-dir?
The resolve-dir npm package is designed to resolve directory paths based on the given input. It can handle resolving home directory paths, relative paths, and paths based on the nearest package.json or node_modules directory. This makes it particularly useful in Node.js applications for file and directory path manipulations, especially when dealing with configurations or file loading where the exact path might vary depending on the environment or project structure.
What are resolve-dir's main functionalities?
Resolving home directory paths
This feature allows you to resolve the path to the user's home directory using the '~' symbol, which is commonly used in Unix-like systems to refer to the home directory.
const resolveDir = require('resolve-dir');
const homeDir = resolveDir('~');
console.log(homeDir);
Resolving relative paths
This feature enables the resolution of relative paths, making it easier to work with file paths that are relative to the current working directory or another specific directory.
const resolveDir = require('resolve-dir');
const relativePath = resolveDir('./relative/path/to/dir');
console.log(relativePath);
Resolving paths based on nearest package.json or node_modules
This functionality is useful for finding the path to a directory based on the location of the nearest package.json or node_modules directory. It's particularly handy in projects where you need to dynamically find the path to dependencies or project-related directories.
const resolveDir = require('resolve-dir');
const projectDir = resolveDir('node_modules/package-name');
console.log(projectDir);
Other packages similar to resolve-dir
find-up
find-up is similar to resolve-dir in that it helps with finding files or directories by searching up the directory tree. It differs in its approach by focusing on finding files or directories based on a given name or condition, rather than resolving paths.
globby
globby is a package that allows for pattern matching on file paths. While it shares the capability of working with file paths like resolve-dir, globby is more focused on matching patterns and filtering file lists, rather than resolving directory paths.
resolve-dir

Resolve a directory that is either local, global or in the user's home directory.
Install
Install with npm:
$ npm install --save resolve-dir
Usage
var resolve = require('resolve-dir');
Returns a local directory path unchanged
resolve('a')
Resolves the path to user home
resolve('~')
resolve('~/foo')
Resolves the path to global npm modules
resolve('@')
resolve('@/foo')
About
Related projects
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Building docs
(This document was generated by verb-generate-readme (a verb generator), please don't edit the readme directly. Any changes to the readme must be made in .verb.md.)
To generate the readme and API documentation with verb:
$ npm install -g verb verb-generate-readme && verb
Running tests
Install dev dependencies:
$ npm install -d && npm test
Author
Jon Schlinkert
License
Copyright © 2016, Jon Schlinkert.
Released under the MIT license.
This file was generated by verb-generate-readme, v0.2.0, on October 18, 2016.