NodeJS module for enabling absolute requires
. Handy when you want to avoid messy require
statements like this:
const foo = require('../../../api/users/model/method')
const bar = require('../../helpers/xhr/facebook')
const baz = require('../../../../../../config/secrets')
And use this instead:
const foo = __require('api/users/model/method')
const bar = __require('helpers/xhr/facebook')
const baz = __require('config/secrets')
For Webpack/Babel users, do not use this! :) Webpack has its own facilities for accomplishing this.
Installation
npm install --save absolute-require
Usage
require
it at the top of your entry point file, and pass it __dirname
. Optionally, you can pass it an alias to use (default: "__require")
require('absolute-require')(__dirname, '__require')
Note: you don't need to assign it to any variables. Just require
it all its lonesome like that. In the example below, if the entry point file (index.js
) is in src
so all of your __require
lookups will start there.
.
├── package.json
├── src
| ├── index.js <––– "require" placed here
| ├── api
| | ├── users
| | ├── posts
| | ├── tags
| | └── comments
| ├── models
| ├── controllers
| └── config
├── helpers
| ├── xhr
| └── authentication
└── config
├── secrets
└── token
You can always revert to normal require()
statements when you want. In fact, you'll still need to use the require()
syntax for stuff in node_modules
directory.