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@dotlabel/temple@digitalrakesh/jsui@dimcheify/dimui@cute-apocalypse/react-tree@cortical/core@cortical/ts2graphql@cortexql/core@cortexql/ts2graphql@continuata/unrar@desco/tot@desco/atlas@blkmarketco/components-library@blueeast/bluerain-cli-pluginjatobalassolasso-toolslasso-i18nlaunch-vehicle-fbmanci-reactsolittype-libaryts-advanced-loggeru-library@alamar/kit@awly/lasso@baiyun/yun-tools@baronote/init@aatif-packages/tools@codingdud/coolicons@boldr/config@davidbwaters/webpack-partialszaryayconfigzephir-gulp-workflowwebfont-icons-generatorwebpack-moduleunglue-serveruniversal-dotenvuniversallyurl-twister@gtsopanoglou/babel-jest-boost@hai.dinh/service-libraries@hai.dinh/service-registry-cli@hackoregon/civic-server@hoal/substrate-client@goodforonefare/sewing-kit@goodforonefare/sewing-kitten@lab009/magma-config@lab009/magma-scripts@lab009/magma-server@lab009/magma-utils@learus/react-translation@luciadias/storybook-notimation@lego-js/tests@itayn-fireberry-org/itayn-test@lite-v3/gqltypegen-cli@lite-v3/gqltypegen-core@lite-v3/graphql-codegen@lite-v3/jest-coverage-reporter@lite-v3/nfs-gql-normalizer@lite-v3/gql-normalizer@lite-v3/gqlcodegen-cli@manekinekko/actions-on-google-i18n@movenium/blocks@my-ideas/loggy@neo-one/smart-contract-compiler-es2018-cjs@neo-one/smart-contract-compiler-esnext-cjs@neo-one/smart-contract-compiler-node@neo-one/smart-contract-compiler-node-browserify@neo-one/smart-contract-compiler-node-esnext-esm@nextj/kit@neotracker/core@neo9/n9-mongodb-migration@neo9/n9-node-conf@neo9/n9-node-micro@neo9/n9-node-routing@neo9/n9-node-sonar-generate@nawxt/cli@nawxt/scripts-express-react-typescript
1.0.2

10 years ago

1.0.1

11 years ago

1.0.0

11 years ago