项目需要在nodejs里加载dll,得知最简单的方案是使用node-ffi,然后就开始了半天的新手踩坑之旅。
npm搭建好项目之后,npm install ffi,会遇到这样的问题
error: no member named 'ForceSet' in 'v8::Object'
去官网查,作者表示 ffi目前不支持nodejs 10及以上版本,然后我研究了一圈,踩了不少坑,找到了electron-rebuild这个东西,它其实就是自动根据你项目里使用的electron版本和平台版本,去下对应的node头文件和lib下来,顺利解决了ffi编译问题。之后尝试打包发布,又出现新问题,vscode里调试跑得好好的代码,直接用electron.exe拉起会提示动态库加载失败,查了一下又得知
ffi.Library('./libfactorial'
这个加载dll的代码,请使用绝对路径,修改一下动态方案,搞定