DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/app-root-dir package

    1.0.2 • Public • Published


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


    // 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)

    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 node_modules directory in its path then use the directory above this as the application root directory. NOTE: The parent directory of the first node_modules 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
      • node_modules
        • 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/node_modules/app-root-dir/lib/index.js has node_modules in its path and the directory above node_modules is the application's root directory.


    npm i app-root-dir

    DownloadsWeekly Downloads






    Last publish


    • philidem