我目前正在开发要在Node.Js和Electron中使用的本机节点模块,该模块需要其他dll才能工作(以及Linux和Mac上的任何等效文件)。 我不是很喜欢C ++开发,也没有在互联网上找到这个问题的解决方案,所以我可能需要您的支持:)
因此,当所有内容都存储在同一(工作)目录中时,它会很好地工作,但是从长远来看,这不是您可以使用的。 尤其是当我将所有内容打包到可以通过NPM加载的模块中时,带有其dll的模块将存储在一个子文件夹中,例如“ ./node_modules/native-module/build/Release/adddon.node[or dll]”。>
我可以轻松地将模块包含在require中,但是它再也找不到任何dll,因为如果我正确理解C ++行为,它只会在PATH和当前工作目录(即Electron或Node.js是执行)。
我的第一个解决方法是将cwd更改为所有dll所在的“ Release”文件夹。 但是,当您喜欢使用webpack的热重载功能时,更改cwd会变得非常混乱,我将其用于开发目的。 您始终必须检查cwd是否已更改,它不再能正确显示页面,我真的认为这不是解决方法。
所以我的问题是,动态告诉节点模块dll存储在哪里的正确方法是什么? 预先感谢。
PS:如果重要的话,我正在使用cmake-js进行构建。