Как требовать N-api от электрона - PullRequest
0 голосов
/ 18 октября 2018

В настоящее время я пытаюсь создать нативную надстройку C ++ для электронного приложения.

Я успешно собрал и запустил testaddon.node из файла index.js, как указано в следующей ссылке (действительноэто фантастическое руководство, очень стоит прочитать).

https://medium.com/@atulanand94/beginners-guide-to-writing-nodejs-addons-using-c-and-n-api-node-addon-api-9b3b718a9a7f

В настоящее время я включаю аддон, который я сделал в своей папке package.json, и запускаю свое электронное приложение через npm start.

Однако я не могу понять, что такое require('./test-addon/build/Release/testaddon.node');

. Я думаю, что папка просто не попадает в мой .asar.Я испробовал все возможные комбинации electron-rebuilder, electron packager и т. Д.

Из того, что я вижу, electron.asar срабатывает только при изменении папки node_modules через узел.Тем не менее, я не вижу, как это сделать, если я делаю свой собственный модуль C ++.

Любая помощь невероятно ценится.

Ответы [ 2 ]

0 голосов
/ 11 ноября 2018

Попробуйте модуль bindings,

https://github.com/TooTallNate/node-bindings

, он найдет и загрузит ваш собственный файл .node.У меня работает следующим образом:

const B2 = require('bindings')('b2')

Эта строка взята из здесь

0 голосов
/ 19 октября 2018

После значительного разбивания моей головы о стену я использовал эти уроки.Обратите внимание, что часть кода C ++ устарела, особенно в последующих примерах.Тем не менее, первые 3 или 4 примера создаются и работают нормально.

https://github.com/nodejs/abi-stable-node-addon-examples

1) Убедитесь, что ваш пример работает так, как объявлено в ссылке на пример дополнения узла.2) Принесите это в свой электронный билд.3) Убедитесь, что вы запустили. \ Node_modules.bin \ Electron-rebuild.cmd после установки

Требование будет таким же для рендерера электронов, как и для файла примера.

...