Requiring libraries with love. ❤
attract
basically replaces require()
, providing a more flexible way of requiring libraries and modules in your project.
(It still uses require()
under the hood, which provides caching all the things you need)
attract
only once, at your application's start, and it will be globally available, everywhere.npm i attract
const fs = require('fs');
const express = require('express');
const mongoose = require('mongoose');
require('attract')();
const [
fs,
express,
mongoose
] = attract('fs', 'express', 'mongoose');
attract
is also registered as required
, so you could use it like:
const [
fs,
express,
mongoose
] = required('fs', 'express', 'mongoose');
You can also get rid of all those horrible relative path requires throughout your application,
and require third-party modules easily with attract
, just define your basePath
at start and you are good to go.
const moduleOne = require('../../modules/path/to/moduleOne');
const moduleTwo = require('../../../modules/path/to/moduleTwo');
// Set `basePath` to your project's root folder, for example.
require('attract')({ basePath: __dirname })
const [
moduleOne,
moduleTwo
] = attract('path/to/moduleOne', 'path/to/moduleTwo');
fork https://github.com/aichholzer/attract/