我目前正在尝试建立一个电子应用程序的原生C++插件。
我已经成功地从下面的链接中指定的index.js文件构建并运行了一个testaddon.node (这真的是一个很棒的指南,非常值得一读)。
我目前正在通过npm start运行我的电子应用程序,并在我的package.json文件夹中添加我制作的插件。
但是,我似乎不能访问require('./test-addon/build/Release/testaddon.node');
我最好的猜测是这个文件夹根本不会出现在我的.asar中。我尝试了所有可以想到的electron-rebuilder、electron packager等组合。
在我看来,只有当我通过节点修改node_modules文件夹时,electron.asar才会触发。然而,如果我自己制作C++模块,我就不知道该怎么做了。
发布于 2018-11-11 08:46:02
尝试bindings模块,
https://github.com/TooTallNate/node-bindings
,它会查找并加载您的本机.node文件。对我来说是这样的:
const B2 = require('bindings')('b2')这行代码取自here
发布于 2018-10-19 20:48:25
在把我的头撞到墙上之后,我使用了这些教程。请注意,一些C++代码现在已经过时,特别是后面的示例。但是,前3或4个示例构建并运行良好。
https://github.com/nodejs/abi-stable-node-addon-examples
1)确保您的示例按照node addon example链接中宣传的那样工作。2)把它带到你的电子构建中。3)确保在安装后运行.\node_modules.bin\ install rebuild.cmd
来自电子渲染器的require与来自示例文件的require相同。
https://stackoverflow.com/questions/52866222
复制相似问题