一些小的javascript片斷能夠很方便的直接使用ScriptEngine.eval()直接導入,可是如何使用require方法導入使用npm下載的javascript模塊呢?javascript
答案是使用jvm-npm這個項目。java
D:\\path\\to\\js_modules\\
npm i <js_module> -g
下載你須要引用的npm模塊,注意看最後的提示,即模塊下載目錄val JS_ROOT = "D:\\path\\to\\js_modules" val JSE = ScriptEngineManager().getEngineByName("nashorn").apply { System.setProperty("user.dir", JS_ROOT) // 設定jvm-npm的當前目錄 eval(Util.readLocalUtfText("$JS_ROOT\\jvm-npm.js")) // 在ScriptEngine中加載jvm-npm.js println(eval("typeof require")) // 驗證require方法已正確引入 eval("var mylib = require('js_module')") // 這時候,就能夠用require()方法來引入當前目錄中的js模塊了 println(eval("typeof mylib")) // 驗證js模塊已正確加載 } ... val bar = JSE.eval("mylib.foo()") // js代碼中能夠使用加載的js模塊了
注意:node
return new Scanner(input).useDelimiter('\\A').next()