smart-require

1.0.2 • Public • Published

smart-require

Avoid ugly require('../../../some-file') using absolute paths, from the root of your project.

This package follows the well-known UNIX convention where / is the root.

For example, in this source tree:

.
├── index.js
├── image
│   ├── gif.js
│   ├── jpg.js
│   └── png.js
└── video
    └── mp4.js

…if you’re in image/gif.js, this package allows you to require video/mp4.js like this:

const video = require('/video/mp4.js')

…instead of:

const video = require('../video/mp4.js')

Of course, it prohibits you to require anything from the root of your system (but why doing so?). Since the behavior of require() changes, this is not really safe, even if I never had any problem with it. Use at your own risk.

Installation

yarn add smart-require

…or:

npm install --save smart-require

Then, you just have to indicate your project root before any call to the customized require, usually at the beginning of your entrypoint. If you are in index.js in the example above, you can write:

require('smart-require')(__dirname)

…or if your entrypoint is in image/jpeg.js and you want the same behavior:

const root = require('path').join(__dirname, '..')
require('smart-require')(root)

See also

require-root, nice but different.

Readme

Keywords

none

Package Sidebar

Install

npm i smart-require

Weekly Downloads

4

Version

1.0.2

License

MIT

Last publish

Collaborators

  • motet-a