Skip to content

Latest commit

 

History

History
97 lines (62 loc) · 2.42 KB

README.md

File metadata and controls

97 lines (62 loc) · 2.42 KB

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