1.0.2 • Published 10 years ago

app-root-dir v1.0.2

Weekly downloads
2,102,205
License
MIT
Repository
github
Last release
10 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@wacoco/ytaskcluster-lib-docstaskcluster-lib-monitortaskcluster-lib-validatetest-iconwolkewheelhouse-packagerxethya-extension-basestanzarizetesting-storybooksvelte-component-libswagapiswagapi-lite@blkmarketco/components-library@blueeast/bluerain-cli-pluginjatobalassolasso-toolslasso-i18nlaunch-vehicle-fbmhulk-cutgulp-build-systemhowsmydriving-twitterhandydevserverhappy-logioc-lib.jslog4js-node-consolelogger-electronmacro-commandmarko-startermarko-climatanzakjd-secretmcgen@vvsalmin/blocks@wpe-tkpd/kratos@vitali_shcherbina/styled-lib@zenvia/logger@zenvia/zcc-logger@zenginehq/handler@zenginehq/handler-cli@zenginehq/handler-workspace@zenginehq/handler-workspace-cli@terrajs/monoamz-douyin-publishamz-kwai-goodsamz-kwai-publishagent-translate@zjkuang/i18next-wizard@zjkuang/react-native-factorybabel-preset-wheelhousebabel-preset-boldrbabel-preset-cutebabel-preset-edgeaxusbabel-plugin-smart-webpack-importap-loggerappcharge-checkout@itayn-fireberry-org/itayn-test@goodforonefare/sewing-kit@goodforonefare/sewing-kitten@aatif-packages/tools@gtsopanoglou/babel-jest-boost@hahahoarder/strawberry-ui@hai.dinh/service-libraries@hai.dinh/service-registry-cli@hackoregon/civic-server@codingdud/coolicons@continuata/unrar@alamar/kit@cortical/ts2graphql@cortexql/core@cortexql/ts2graphql@cortical/coreanci-reactsolittype-libaryts-advanced-loggeru-library@baiyun/yun-tools@baronote/init@boldr/configzaryayconfigzephir-gulp-workflowwebfont-icons-generatorwebpack-moduleunglue-serveruniversal-dotenvuniversallyurl-twister@lab009/magma-config
1.0.2

10 years ago

1.0.1

11 years ago

1.0.0

11 years ago