2017-01-28 2 views
0

Как включить зависимости в J2V8? Я хотел бы использовать определенные зависимости в файле javascript, например, crypto-пакет.Как включить зависимости в J2V8

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?

ответ

0

Если вы не работаете с узлом, require не является функцией. Обычно вы хотите использовать пакет, например webpack, для упаковки структурированного исходного кода в один большой файл, чтобы он мог быть понят браузерами. Таким образом, вы можете использовать пакеты require и npm для своего кода frontend, что упрощает разработку, а связующий агент превращает его с каждой сборкой (или обновлением в реальном времени) в другой формат, который трудно читать для людей, но является допустимым Javascript.

0

Я имел успех, используя узловые модули в J2v8, пожалуйста, проверьте этот блог: http://eclipsesource.com/blogs/2016/07/20/running-node-js-on-the-jvm/

NodeJs nodeJS = NodeJs.createNodeJs();

После регистрации обратных вызовов

nodeJs.exec (thescripttoexecute File)

Убедитесь, что правильный путь к узлу модулей в команде требуют().

0

Возможно, вам придется создать пакет nodejs, который принимает зависимости и экспортирует то, что вам нужно. Затем вам необходимо выполнить команду npm install вручную.

или вы можете просто npm install what-you-need.

Создайте Node JS Runtime и используйте требуемый номер с вашим your-package-dir/index.js или точным расположением модуля, который вам нужен. как это:

V8Object module = nvm.require(file); 

Теперь вы можете вызвать функцию любит:

module.executeJSFunction("test"); 

Доставить целые зависимости вы должны bundlize директории модуля вашей собственной личности.

Что делать, если вам нужно поддерживать кросс-платформу, обратитесь к https://www.npmjs.com/package/node-pre-gyp.