如何在J2V8中包含依赖项

时间:2017-01-28 00:56:47

标签: node.js v8 j2v8

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

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吗?

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

NodeJs nodeJS = NodeJs.createNodeJs();

注册回调后

nodeJs.exec(文件thescripttoexecute)

确保在require()命令中具有到节点模块的正确路径。

答案 2 :(得分:0)

您可能必须创建一个nodejs包,它接受依赖项并导出您需要的内容。然后,您必须手动执行npm install

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

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

V8Object module = nvm.require(file);

现在你可以调用函数like:

module.executeJSFunction("test");

要提供整个依赖关系,您必须将模块目录捆绑自己。

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