Skip to content

bsorrentino/jvm-npm

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jvm-npm

Support for NPM module loading in Javascript runtimes on the JVM.

Implementation is based on [http://nodejs.org/api/modules.html] and should be fully compatible. This, of course, does not include the full node.js API, so don't expect all of the standard NPM modules that depend on it to work.

If you are writing your own NPM modules in DynJS, Rhino or Nashorn, this should work just fine.

Note:

DynJS implementation is currently considered legacy, so it is suggested to use it with Rhino and/or Nashorn

Usage

Nashorn

To enable JVM-NPM for Nashorn in your project add dependency below

    <dependency>
        <groupId>org.bsc</groupId>
        <artifactId>jvm-npm-core</artifactId>
        <version>${jvmnpm.version}</version>
    </dependency>

and in your code load module

    final ScriptEngineManager manager = new ScriptEngineManager();
	
	final ScriptEngine service = manager.getEngineByName("nashorn");
	
	service.eval( "load('classpath:jvm-npm.js');");

Rhino

To enable JVM-NPM for Rhino in your project add dependencies below

    <dependency>
        <groupId>org.bsc</groupId>
        <artifactId>jvm-npm-core</artifactId>
        <version>${jvmnpm.version}</version>
    </dependency>
    
    <dependency>
        <groupId>org.bsc</groupId>
        <artifactId>jvm-npm-rhino</artifactId>
        <version>${jvmnpm.version}</version>
    </dependency>
    

and in your code load module

    final ScriptEngineManager manager = new ScriptEngineManager();
	
	final ScriptEngine service = manager.getEngineByName("rhino-npm");
	
	service.eval( "load('classpath:jvm-npm.js');");

JDK7

If you need run on JRE7 then include deps

    <dependency>
        <groupId>org.bsc</groupId>
        <artifactId>jvm-npm-core</artifactId>
        <version>${jvmnpm.version}</version>
    </dependency>
    
    <dependency>
        <groupId>org.bsc</groupId>
        <artifactId>jvm-npm-rhino</artifactId>
        <version>${jvmnpm.version}</version>
        <classifier>jdk7</classifier>
    </dependency>
    

Debug

set system property jvm-npm.debug at true

About

NPM compliant CommonJS module loader for the JVM

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 72.6%
  • JavaScript 19.1%
  • TypeScript 8.3%