0
点赞
收藏
分享

微信扫一扫

node-ffi从入门到放弃(安装篇)

 

node-ffi是什么

​node-ffi​​​是一个​​node​​​用来调用​​dll​​​的库,当然还有​​node-ffi-napi​​​,\`食用\`指南暂时先不贴出来,我们今天先来安装​​node-ffi​​,同时对一些常见问题进行整理

windows安装

node-gyp安装

安装​​node-ffi​​​前需要先安装​​node-gyp​​,这是一个极容易劝退的过程,下面请跟我一起走进这个会被逼疯的世界:

安装windows-build-tools

​​传送门​​

yarn global add windows-build-tools
// or
npm i -g windows-build-tools

安装完成后,打开命令行查看​​python​​​版本,看看版本号是否为​​2.7.15​​​,
如果版本号不是​​​2.7.xx​​​的话,可以查看环境变量或则用户变量,将​​path​​​下面的​​python​​​版本提到靠前的位置或者加入
node-ffi从入门到放弃(安装篇)_环境变量
如果你不想在环境变量或则用户变量中设置,可以使用

npm config set PYTHON %PYTHON2%
// or
yarn config set PYTHON %PYTHON2%

不推荐同时使用​​yarn​​​和​​npm​​, 会因为路径问题造成很多没必要的麻烦

这个样子你就可以非常开心的在不改变自己​​python​​​版本的情况下使用​​node-ffi​​​,但是这种方法容易让你后期忘记自己配置了那些​​npm​​​或者​​yarn​​​配置导致一些未知的​​bug​​​,当我说到这里,你是否应该​​npm config list​​来查看下自己配置是否有需要删除的呢?!

安装node-gyp

​​传送门​​​在安装前我们先将​​msvs_version​​的版本设置为​​2017​

npm config set msvs_version 2017
// or
yarn config set msvs_version 2017

然后我们就可以开心的安装​​node-gyp​​了

npm i -g node-gyp
// or
yarn global add node-gyp

​node-gyp​​编译包下载

node-gyp install --dist-url=https://npm.taobao.org/mirrors/node

当这些准备工作都做好之后,我们就可以请我们的主角​​node-ffi​​上场了

安装node-ffi

npm i ffi --save
// or
yarn add ffi --save

一般情况下​​node-ffi​​​是需要和​​ref​​放在一起食用的

electron 安装 node-ffi

​electron​​​安装​​node-ffi​​​需要编译后才可以使用,所以需要安装​​electron-rebuild​

npm i electron-rebuild
// or
yarn add electron-rebuild

最开始使用​​cnpm​​​经常会出现各种各样的问题,最常见的问题就是不在​​./node_modules/.bin​​​文件下创建​​electron-rebuild.bat​​​,如果你编译​​node-ffi​​有问题的话,你可以尝试以下方法

> cd node_modules/ffi
> node-gyp rebuild --runtime=electron --arch=ia32 --target=2.0.18 --dist-url=https://npm.taobao.org/mirrors/atom-shell

参数

说明

arch

编译为32位还是64位

target

electron版本号 已node_modules/electron/package.json中的版本号为准

dist-url

下载源

​​更多配置​​​当然还是推荐使用​​node-ffi-napi​​毕竟兼容到​​node12​​,但是我到目前还没有安装成功过,而且也没找到原因,所以我不推荐

分割线

快速导读

> npm i -g windows-build-tools // 下载windows-build-tools
> npm config set msvs_version 2017 // 设置msvs_version,同时可以使用npm config list 查看python是否指向2.7版本
> npm i -g node-gyp // 下载node-gyp
> npm i ffi --save
// electron 添加
> npm i electron-rebuild -D
> electron-rebuild

问题归纳


node.lib : fatal error LNK1106: 文件无效或磁盘已满


删除​​C:\\Users\\xxxx\\AppData\\Local\\node-gyp​​​文件夹
然后运行​​​node-gyp rebuild​

 

gyp info it worked if it ends with ok
gyp info using node-gyp@7.0.0
gyp info using node@12.13.0 | win32 | x64
gyp info find Python using Python version 2.7.17 found at "C:\Python27\python.ex
e"
gyp http GET https://nodejs.org/download/release/v12.13.0/node-v12.13.0-headers.
tar.gz
gyp http 200 https://nodejs.org/download/release/v12.13.0/node-v12.13.0-headers.
tar.gz
gyp http GET https://nodejs.org/download/release/v12.13.0/SHASUMS256.txt
gyp http GET https://nodejs.org/download/release/v12.13.0/win-arm64/node.lib
gyp http GET https://nodejs.org/download/release/v12.13.0/win-x64/node.lib
gyp http GET https://nodejs.org/download/release/v12.13.0/win-x86/node.lib
gyp http 200 https://nodejs.org/download/release/v12.13.0/SHASUMS256.txt
gyp http 404 https://nodejs.org/download/release/v12.13.0/win-arm64/node.lib
gyp http 200 https://nodejs.org/download/release/v12.13.0/win-x86/node.lib
gyp http 200 https://nodejs.org/download/release/v12.13.0/win-x64/node.lib

然后再次安装​​ffi​​ok


举报

相关推荐

0 条评论