1.0.2 • Published 9 years ago

app-root-dir v1.0.2

Weekly downloads
2,102,205
License
MIT
Repository
github
Last release
9 years ago

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 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.

lazy-universal-dotenv@joseirrazabal/links@joseirrazabal/kit@saaspe/components@nyui/corenvd-clidevetek-toolkit@everything-registry/sub-chunk-1155@skedulr/nebula-ui-libraryaxusbabel-preset-boldrbabel-preset-edgebabel-preset-cute@alamar/kit@aatif-packages/tools@awly/lasso@cute-apocalypse/react-treeconfiqconsole-line-logger@davidbwaters/webpack-partials@desco/atlas@desco/tot@blueeast/bluerain-cli-plugin@blkmarketco/components-library@boldr/configbuildkit-config@baiyun/yun-tools@baronote/initolymp-universallyquick-webpackraptor-optimizer-rrrraptor-modulesraptor-optimizerpug-compile-to-jsqgulppwlnquran-promiseqlik-sense-webpack-pluginpolyglot-component-libraryprepublishreact-ducks-genreact-form-component-libraryparvan_componentsparvan_reactjs_componentsoptimizerpg-db-objectspleebpickconfigretarded-logsequelcomponentservicenow-liteserverless-express-pluginxethya-extension-baseuniversallyunglue-serveruniversal-dotenvtype-libaryu-librarywebpack-moduleyconfigwebfont-icons-generatorwheelhouse-packagerwolkezephir-gulp-workflowzaryaurl-twistertesting-storybookts-advanced-loggershainasimplepublishsvelte-component-libswagapiswagapi-litetaskcluster-lib-monitortaskcluster-lib-validatetaskcluster-lib-docssolitstanzarizerequire-from-app-rootrootwdrouting-controllers-wrapperboldr-dx-webpackrollrtest-iconsclintrequirorequire-bundlesewing-kitsewing-kit-betasewing-kit-of-lemonssewing-kittensewing-websewing-web-testreboots2react-universallyreadable-cli@cortical/core@cortical/ts2graphql@cortexql/core@cortexql/ts2graphql
1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

10 years ago