req

requireg

Resolve and require local & global modules in node.js like a boss

Showing:

Popularity

Downloads/wk

219K

GitHub Stars

43

Maintenance

Last Commit

2yrs ago

Contributors

9

Package

Dependencies

3

Size (min+gzip)

4.1KB

License

Type Definitions

Tree-Shakeable

No?

Categories

Readme

requireg Build Status NPM version

Require and resolve global modules in node.js like a boss.

Differences with require()

requireg tries to find modules in global locations which are not natively supported by the node.js module resolve algorithm.

It support both npm/yarn global packages installation paths.

Supported locations:

  • $HOME/node_modules (instead of $HOME/.node_modules)
  • $HOME/node_libraries (instead of $HOME/.node_libraries)
  • $HOME/node_packages (specific of requireg)
  • $PREFIX/lib/node_modules (instead of $PREFIX/lib/node)
  • $NODE_MODULES (use the specific modules path environment variable)

Resolution priority

  1. Resolve via native require() (unless second parameter is true)
  2. User home directory ($HOME or %USERPROFILE%)
  3. Node installation path
  4. $NODE_MODULES (can have different multiple paths, semicolon separated)
  5. Common operative system installation paths

Installation

$ npm install requireg --save[-dev]
$ yarn add requireg

API

requireg(path: string, onlyGlobal: boolean = false)

Usage

Load global modules

var requireg = require('requireg')
// require a globally installed package
var npm = requireg('npm')

Load only global modules

var requireg = require('requireg')
// require a globally installed package and skip local packages
var eslint = requireg('eslint', true)

Resolve module path

var modulePath = requireg.resolve('npm')
// returns '/usr/local/lib/node_modules/npm/lib/npm.js'

Globalize it

require('requireg').globalize()

Now it is globally available from any source file

var globalModule = requireg('npm')

Module not found

requireg maintains the same behavior as the native require(). It will throw an Error exception if the module was not found

Considerations

  • Require global modules in node.js is considered anti-pattern. Note that you can experiment unreliability or inconsistency across different environments. I hope you know exactly what you do with requireg
  • Only node packages installed with npm or yarn are supported (which means only standardized NPM paths are supported)

Possible extra features

  • Custom environment variable with custom path to resolve global modules.

License

Released under MIT license

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial