No more ugly path inside the require
.
const user = require('../../../database/user') // 👎 what you have
// OR
const user = require('$db/user') // 👍 no matter how deep you are
const product = require('/database/product') // 👍 alias or pathing from application directory
Three simple steps to use it.
-
Install the package:
npm install sexy-require --save
-
Include
require('sexy-require')
once on the top of your main application file.
require('sexy-require')
const routers = require('/routers')
const api = require('$api')
...
- Optional step. Path configuration can be defined in
.paths
file on root directory of your project.
$db = /server/database
$api-v1 = /server/api/legacy
$api-v2 = /server/api/v2
Anywhere in your project you can get the defined shortcut paths:
const path = require(`sexy-require`)
console.log(path.$db) // -> '/full/path/to/app/server/database'
- Seamless module require. If a given path doesn't exist in the app directory it will be ignored by sexy-require.
- definition of path shortcuts moved from
package.json
to.paths
config file - depending modules can use
sexy-require
too, previously it was not possible - supporting pathing from root directory, now it is not required to define shortcuts
- caching and optimized code for higher performance
- returns defined shortcut list with absolute path
- minor bug fixes