load-request-from-cwd-or-npm
Load request
module from either CWD or npm CLI directory.
Why?
To keep project dependencies smaller.
$ npm install request@2.83.0
$ du -sh ./node_modules
5.6M ./node_modules
$ npm install load-request-from-cwd-or-npm@2.0.0
$ du -sh ./node_modules
> 300K ./node_modules
If load-request-from-cwd-or-npm
is installed to your project directory, you can use request
module in your program even though it's not actually installed.
Also we have an option to use one of the request
alternatives with smaller file size, but none of them can deal with a lot of edge cases related to networking and HTTP as request
does.
Installation
Use npm.
npm install load-request-from-cwd-or-npm
API
const loadRequestFromCwdOrNpm = require('load-request-from-cwd-or-npm');
loadRequestFromCwdOrNpm()
Return: Promise<Function>
It loads request
module from either of these two directories:
node_modules
in the current working directorynode_modules
in the directory where npm
CLI dependencies are installed.
If request
ins't installed in CWD, it loads request
from npm CLI directory.
(async () => {
const request = await loadRequestFromCwdOrNpm();
})();
If request
is installed in CWD, it compares package versions of the CWD one and the npm dependency one, then loads the newer one.
(async () => {
const request = await loadRequestFromCwdOrNpm();
})();
The returned promise will be fulfilled with request
, or rejected when it fails to find the module from either directories.
License
ISC License © 2017 Shinnosuke Watanabe