javascript - 如何从 Electron 获取 N-api

标签 javascript node.js electron

我目前正在尝试为 Electron 应用程序构建 native C++ 插件。

我已经成功地从 index.js 文件构建并运行了 testaddon.node,如以下链接所示(确实是一个很棒的指南,非常值得一读) )。

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

我目前正在将我制作的插件包含在我的 package.json 文件夹中,并通过 npm start 运行我的 Electron 应用程序。

但是,我似乎无法获取 require('./test-addon/build/Release/testaddon.node');

我最好的猜测是该文件夹根本没有进入我的.asar。我尝试了 Electron 重建器、 Electron 打包器等的所有可能组合。

据我所知,只有当我通过 Node 修改node_modules文件夹时,electron.asar才会触发。但是,如果我要制作自己的 C++ 模块,我不知道如何执行此操作。

最佳答案

尝试绑定(bind)模块,

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

,它会查找并加载您的 native .node 文件。对我来说工作如下:

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

此行取自 here

关于javascript - 如何从 Electron 获取 N-api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52866222/

相关文章:

node.js - 快速 CSRF token 验证

windows - 使用ElectronJS应用程序获取IntelliJ IDEA/Android Studio打开的项目文件夹

javascript - 下载属性的 Electron 问题

node.js - 从 Electron 打包应用程序运行 Cli 命令

javascript - 如何使用 JavaScript 悬停事件更改特定元素的 CSS(BG 颜色)?

node.js - cluster.fork() 是否保证使用不同的 CPU 内核?

javascript - jquery,正则表达式,制作动态 url

php - 监听文件夹和文件(更改)

javascript - 如果长度为 `div` 或 `0`,则尝试停止删除 `1`。有人能帮我吗?

JavaScript:防止多个 javascript 对象实例在完成后被处置?