Nightly Patch Machine

    requireg

    0.2.2 • Public • Published

    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

    Install

    npm i requireg

    DownloadsWeekly Downloads

    366,533

    Version

    0.2.2

    License

    none

    Unpacked Size

    53.6 kB

    Total Files

    11

    Last publish

    Collaborators

    • h2non