2

如何在 J2V8 中包含依赖项?我想在 javascript 文件中使用某些依赖项,例如加密包。

var crypto = require('crypto');

function foo(){ return crypto.createHash('md5').update('Apple').digest("hex");}

但是,我收到以下错误,说require关键字未定义。

undefined:1: ReferenceError: require is not defined

var crypto = require('crypto');
         ^
 ReferenceError: require is not defined at <anonymous>:1:14
  com.eclipsesource.v8.V8ScriptExecutionException
at com.eclipsesource.v8.V8._executeVoidScript(Native Method)

谁能告诉我如何将包导入 J2V8?

4

3 回答 3

0

您可能需要制作一个 nodejs 包来获取依赖项并导出您需要的内容。然后,您必须npm install手动执行。

或者你可以npm install what-you-need

创建 Node JS 运行时,并将 require 与您your-package-dir/index.js或您需要的模块的确切位置一起使用。像这样:

V8Object module = nvm.require(file);

现在你可以像这样调用函数:

module.executeJSFunction("test");

要交付整个依赖项,您必须自己捆绑模块目录。

如果您必须支持跨平台怎么办,请参阅https://www.npmjs.com/package/node-pre-gyp

于 2017-10-20T09:24:24.473 回答
0

除非您使用 Node,否则require它不是一个功能。通常,您希望使用 webpack 之类的打包器将结构化源代码打包到一个大文件中,以便浏览器能够理解它。这样你就可以为你的前端代码使用 require 和 npm 包,这使得开发更容易,并且捆绑器将它与每个构建(或实时更新)转换为不同的格式,这对于人类来说很难阅读,但它是有效的 Javascript。

于 2017-02-01T22:37:50.320 回答
0

我在 J2v8 中使用节点模块取得了成功,请查看此博客:http ://eclipsesource.com/blogs/2016/07/20/running-node-js-on-the-jvm/

NodeJs nodeJS = NodeJs.createNodeJs();

注册回调后

nodeJs.exec(文件执行脚本)

确保您在 require() 命令中拥有指向节点模块的正确路径。

于 2017-02-12T13:29:03.797 回答