This is a JVM wrapper around the Node Package Manager (NPM). The NPM that is run is the real NPM. The JS Engine project is used to execute NPM either using Trireme (a Node API implementation) or Node itself.
A WebJar is used to download the NPM source files.
Some sample usage from Scala:
valengine= system.actorOf(Node.props(), "engine")
valto=newFile(newFile("target"), "webjars")
valcacheFile=newFile(to, "extraction-cache")
valnpm=newNpm(engine, NpmLoader.load(to, cacheFile, Main.getClass.getClassLoader))
for (
result <- npm.update() // Perform an "npm update"
) {
println(s"status\n======\n${result.exitValue}\n")
println(s"output\n======\n${newString(result.output.toArray, "UTF-8")}\n")
println(s"error\n=====\n${newString(result.error.toArray, "UTF-8")}\n")