【问题标题】:Building Electron Native Extensions using Visual Basic 2015使用 Visual Basic 2015 构建电子本机扩展
【发布时间】:2016-08-31 20:47:48
【问题描述】:

我目前在哪里:

我已经开始开发我打算与 Electron 一起使用的 NodeJS 原生扩展,但从之前的工作中我注意到,仅针对 NodeJS 构建的构建步骤符合预期,按照说明包含库并更改为输出.dll 文件,扩展名为 .node。

我面临的问题:

在编译我在 NodeJS 中尝试和测试的扩展时,它在包含 Electron 的 NodeJS 实例中不起作用 - 通过四处搜索,我了解到这是我正在编译的头文件等问题。使用 Visual Studio(不是 Visual Studio Code)进行构建非常稀少,而且通常到处都指向使用 node-gyp - 这是我试图避免并使用纯 Visual Studio 2015 构建的东西。

作为参考,在运行工作(在 NodeJS 中)NativeExtension 时,我收到以下错误(谷歌搜索让我得出结论,我正在针对错误的东西进行编译):

ELECTRON_ASAR.js:167 Uncaught Error: Module did not self-register.

有人可以说明我可能出错的地方吗?我是 C++ 程序结构和编译方法的新手。

【问题讨论】:

    标签: node.js visual-studio electron


    【解决方案1】:

    使用 Visual Studio(不是 Visual Studio Code)构建的文档非常稀少,而且到处都指向使用 node-gyp - 这是我试图避免并使用纯 Visual Studio 2015 构建的东西。

    有一种编译原生 Node 模块的标准方法,作为一个自认是新手,偏离它是不明智的。我建议您通读Microsoft NodeJS guidelines 并正确配置您的开发环境以通过node-gyp 构建,一旦工作正常,您就可以开始了解how to rebuild native Node modules for Electron

    【讨论】:

    • 感谢您的回复!我之前使用 node-gyp 为 Electron 构建了我的本机扩展(成功!),但由于我的环境(我目前是一名初级 Javascript 开发人员,但已被分配测试 NodeJS/Electron/NativeExtension 堆栈与我们的产品)以及与我们的其他产品相关的构建步骤我希望抽象编译步骤,以便可以与产品线的其余部分一起编译本机扩展。我已经在标准化构建方面正确设置了所有内容,但最终我正在寻找有关要包含的文件、库等的指导。
    • node-gyp configure 应该生成一个.vcxproj 文件,所以也许您可以将它集成到您​​的构建中。
    • 考虑到我还没有找到解决我的问题的其他方法,我将继续并将其标记为正确,并且通过观看 Paul Betts 的“电子本机扩展”演讲,这似乎是合法的方法使用 Electrons 头文件进行编译。我最初的担忧是基于 node-gyp 项目的生命周期,但从进一步的研究来看,我相信 node-gyp 可能不会很快消失。感谢您的意见,感谢您抽出宝贵时间回复我。
    • @N.J.Dawson node-gyp 是构建 NodeJS 插件的官方方式,只要 NodeJS 存在,它就不会去任何地方(即使存在,类似的东西也会取代它)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 2011-02-21
    • 1970-01-01
    相关资源
    最近更新 更多