如何从电子中获取N-api

时间:2018-10-18 02:44:46

标签: node.js electron nodeapi

我目前正在尝试为电子应用程序构建本机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-rebuilderelectron packager等的所有可能组合。

从我看到的情况来看,electron.asar仅在我通过节点修改node_modules文件夹时触发。但是,如果我要创建自己的C ++模块,我将看不到该怎么做。

非常感谢您的协助。

2 个答案:

答案 0 :(得分:0)

在将我的头砸成墙后,我使用了这些教程。请注意,某些C ++代码现在已经过时,尤其是后面的示例。但是,前3或4个示例可以构建并正常运行。

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

1)确保您的示例按节点附加示例示例链接中的说明进行工作。 2)将其带入电子体。 3)确保安装后运行。\ node_modules.bin \ electron-rebuild.cmd

电子渲染器中的需求与示例文件中的需求相同。

答案 1 :(得分:0)

尝试使用bindings模块,

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

,它将查找并加载您的本机.node文件。为我工作如下:

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

此行摘自here