Node.js 预构建本机加载项依赖项(用于节点和电子)

Node.js 预构建本机加载项依赖项(用于节点和电子),node.js,node-gyp,node.js-addon,prebuild,n-api,Node.js,Node Gyp,Node.js Addon,Prebuild,N Api,我试图在节点应用程序和电子应用程序中使用本机插件(-a.k.a.NSFW-) 同时使用同一个本机加载项(node和electron)不起作用,因此我必须使用(然后它将与electron一起工作)或npm rebuild(然后它将对node起作用),但不能同时对两者都起作用 我试图避免为了切换而重建,我更喜欢根据平台的不同而有一个动态需求(我将使用一个特定版本的electron) 是否可以同时为两个(或更多)平台安装依赖项预构建 我发现了一些有趣的包,比如,但是看起来您需要修改本机插件(在本例中为

我试图在节点应用程序和电子应用程序中使用本机插件(-a.k.a.NSFW-)

同时使用同一个本机加载项(node和electron)不起作用,因此我必须使用(然后它将与electron一起工作)或
npm rebuild
(然后它将对node起作用),但不能同时对两者都起作用

我试图避免为了切换而重建,我更喜欢根据平台的不同而有一个动态需求(我将使用一个特定版本的electron)

是否可以同时为两个(或更多)平台安装依赖项预构建

我发现了一些有趣的包,比如,但是看起来您需要修改本机插件(在本例中为NSFW)


我计划将其用作一个专用NPM包,该包将分发并用于node和一个特定版本的electron。

我所做的是分叉库并用于生成几个预构建;另一种选择是使用node pre gyp,但它和webpack存在一些问题,因此我更喜欢使用prebuildify。

在N-API方面不是最大的专家,但我在monorepo中处理许多不同的生产构建设置(使用NodeJS API、React Native、Vue和CLI)。我打这场战争已经有一段时间了,我的经验是为每个目标创建单独的包,第三个包充当可共享代码的公共层。它需要更多的工作,但比在单个包中完成相对容易(例如使用安装后脚本在运行时重新确定构建目标)。我可以用更多的信息来详细说明,它是prod依赖还是dev依赖?捆绑应用程序中是否需要它?我知道这个问题很老了,但对未来的访问者来说可能仍然很重要。谢谢Luis,我添加了一个关于我如何解决它的答案(很久以前),我同意不需要任何库就可以手动解决它,生成多个构建并在运行时需要它(node pre gyp就是这么做的)。