electron引用ffi的详细教程

版本及环境要求

electron版本需小于5.0,目前我所使用的是4.2.8,也就是5.0前最后一个版本

node使用最新的稳定版,32位,64位都可以,我使用的是11.10

python环境使用3.0以下的,建议使用2.7.x

可以不用单独安装windows-build-tools下包含python环境

安装vs2015 前往https://msdn.itellyou.cn/下载

这个VS2015只需要安装和C++编译相关的模块即可,文中提到的windows-build-tools的作用和vs一样,如果出现VS环境找不到的话再安装吧

node所需模块安装

安装windows-build-tools

npm install --global --production windows-build-tools /

安装node-gyp

npm install node-gyp -g

在electron项目中安装ffi模块

npm i ffi -save

错误处理

ffi安装报错

提示“ForceSet”:不是“v8::Object”的成员时,使用下面的命令安装ffi的分支

npm install ffi@gavignus/node-ffi#torycl/forceset-fix --save

node版本报错

提示NODE_MODULE_VERSION等字样,这是因为ffi模块还没有正确编译

在electron项目中安装electron-rebuild模块(不需要使用save或save-dev)并执行

npm i electron-rebuild
 "./node_modules/.bin/electron-rebuild" "./node_modules/ffi"

一个demo

该demo使用electron-vue脚手架,默认electron版本为2.x,建议在低版本先尝试安装,成功后再升级到对应的版本

修改了package.json的electron版本在安装后都需要执行 "./node_modules/.bin/electron-rebuild" "./node_modules/ffi"

以下是demo的命令

npm install --global --production windows-build-tools
npm install node-gyp -g
npm install -g vue-cli
vue init simulatedgreg/electron-vue my-project
cd my-project
npm i
npm i ffi -save
npm i electron-rebuild
 "./node_modules/.bin/electron-rebuild" "./node_modules/ffi"
npm run dev

在执行最后一条命令时如果提示以下内容,那么基本成功了

 "./node_modules/.bin/electron-rebuild" "./node_modules/ffi"
√ Rebuild Complete

如果执行完上面的命令能正常启动项目(如下图),那么恭喜你,ffi这个巨坑的东西就引入成功了