requireg

WebJar for requireg

License

License

MIT
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

requireg
Last Version

Last Version

0.2.2
Release Date

Release Date

Type

Type

jar
Description

Description

requireg
WebJar for requireg
Project URL

Project URL

https://www.webjars.org
Source Code Management

Source Code Management

https://github.com/h2non/requireg

Download requireg

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/requireg/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>requireg</artifactId>
    <version>0.2.2</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/requireg/
implementation 'org.webjars.npm:requireg:0.2.2'
// https://jarcasting.com/artifacts/org.webjars.npm/requireg/
implementation ("org.webjars.npm:requireg:0.2.2")
'org.webjars.npm:requireg:jar:0.2.2'
<dependency org="org.webjars.npm" name="requireg" rev="0.2.2">
  <artifact name="requireg" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='requireg', version='0.2.2')
)
libraryDependencies += "org.webjars.npm" % "requireg" % "0.2.2"
[org.webjars.npm/requireg "0.2.2"]

Dependencies

compile (3)

Group / Artifact Type Version
org.webjars.npm : nested-error-stacks jar [2.0.1,2.1)
org.webjars.npm : rc jar [1.2.7,1.3)
org.webjars.npm : resolve jar [1.7.1,1.8)

Project Modules

There are no modules declared in this project.

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

Versions

Version
0.2.2
0.1.8