app-root-dir

Simple module to infer the root directory of the currently running node application

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
app-root-dir
1411.0.29 years ago10 years agoMinified + gzip package size for app-root-dir in KB

Readme

node-app-root-dir
Simple module to infer the root directory of the currently running node application

Usage

// get the application's root directory
var appRootDir = require('app-root-dir').get();

// set the application's root directory
// (this will set a global so that no matter
// how many instances of app-root-dir module are
// installed, they will all return the same
// directory)
require('app-root-dir').set(__dirname);

How it Works

The following strategy is used to find the application's root directory (the directory in your project that contains the main package.json file):
  • If package.json exists at process.cwd() then use process.cwd() as the application root directory.
  • Else if, the app-root-dir module has nodemodules directory in its path then use the directory above this as the application root directory. NOTE: The parent directory of the first nodemodules directory in the path is used if the app-root-dir module is installed as a submodule of another module.
  • Else, use the directory of app-root-dir module as the application root directory.

For example, consider this directory structure for the scenarios below:
  • my-project
+ package.json + server.js + nodemodules
+ app-root-dir
  + lib
    + index.js

Scenario 1:

Application is ran as: node server.js
The application root directory will be my-project because package.json exists at process.cwd()

Scenario 2:

Application is ran as: node my-project/server.js
There is no package.json at process.cwd(). The application root directory will still be my-project because my-project/nodemodules/app-root-dir/lib/index.js has nodemodules in its path and the directory above nodemodules is the application's root directory.