Можно ли связать надстройки Node для браузеров? - PullRequest
0 голосов
/ 06 августа 2020

У меня очень простое дополнение узла C ++. Он экспортирует 2 метода с использованием функции узла NODE_SET_METHOD. Оба они просто возвращают строку и / или выводят что-то в консоль.

void Method1(const FunctionCallbackInfo<Value>& args) {
    Isolate* isolate = args.GetIsolate();
    args.GetReturnValue().Set(String::NewFromUtf8(
        isolate, "world"));
}

void Method2(const FunctionCallbackInfo<Value>& args) {
    Isolate* isolate = args.GetIsolate();
    printf("Testing testing.\n");
    args.GetReturnValue().Set(String::NewFromUtf8(isolate, "hello there"));
}

void Initialize(Local<Object> exports) {
    NODE_SET_METHOD(exports, "hello", Method1);
    NODE_SET_METHOD(exports, "welcome", Method2);
}

Сборка работает нормально. Вызов этих функций из JavaScript через Node также возвращает и распечатывает ожидаемые значения. Я борюсь с тем, чтобы связать все это (с помощью browserify), чтобы я мог вызывать те же функции из браузера. Browserify отказывается строить. Я все время получаю это сообщение об ошибке:

> npx browserify index.js
Error: Can't walk dependency graph: Cannot find module './build/Release/hello' from 'F:\workspace\c\addon\hello\index.js'
    required by F:\workspace\c\addon\hello\index.js
    at F:\workspace\c\addon\hello\node_modules\resolve\lib\async.js:136:35
    at load (F:\workspace\c\addon\hello\node_modules\resolve\lib\async.js:155:43)
    at onex (F:\workspace\c\addon\hello\node_modules\resolve\lib\async.js:180:17)
    at F:\workspace\c\addon\hello\node_modules\resolve\lib\async.js:15:69
    at FSReqCallback.oncomplete (fs.js:166:21)

Я начинаю думать, что невозможно связать надстройки узлов для внешнего использования. Однако есть ли способ обойти эту проблему и иметь возможность включать надстройки узлов в сборки браузера? Может быть особый способ написать свой index.js что ли? Или есть другой способ создания дополнений, который позволяет обойти эту проблему?

1 Ответ

0 голосов
/ 07 августа 2020

В следующем репозитории есть хороший набор примеров собственных надстроек для узлов

node-addon-examples

Надстройка узла не может быть связана с браузеры ; сценарий возвращаемого значения объясняется в

hello_world пример

...