As your NodeJS app grows bigger, the file structure tends to go 3 to even 5 layers deep. The problem now is as you require
local modules you created, you'll have to write them in this way:
const myModule = require('../../../my/module');
This can become an awful developer experience.
on the top of your server.js
or whatever the filename is of that which you run first when you startup your nodejs application.
const path = require('path');
global._require = module => require(path.join(__dirname, module));
Then on a/very/far/away/module.js
:
// coming from /root/libs/validator
const validator = _require('libs/validator');
// coming from the /root/constanst
const { validListOfThings } = _require('constants');
The file structure would look like:
/root
|- a
| |- very
| | |- far
| | | |- away
| | | | |- module.js
|- libs
| |- validator.js
|- server.js
|- constants.js
You can now use _require
for your local modules
, and you can still use require
for your node_modules
.