- 第一步先安装
npm install -g node-gyp
这个软件是node下,用来编译node插件软件,也就是我们要安装的ffi-napi的,因为ffi-napi是调用c++,所以这个软件,在不同平台,linux,windows,肯定要不同的代码才行,但是npm 不可会按不同的系统,下载不同的软件。所以要在不同的平台进行编译源代码才行。 - 第二步,在windwos下安装c++环境,就安装最高版本的visual studio的c++环境就好了,ffi-napi的主页都有写。然后还要安装最高级版本的python,不用安装低级的,这个软件一直有人维护的。因为python代码写的快,ffi-napi的windows维护者偷懒了吧,还要安装个python。
- 第三步就是,执行
npm i ffi-napi
,安装,其实也是编译,执行这个安装,他会自己利用平台上的c++库进行编译。其实编译一次过后,可以把node_moudles下的ffi-napi复制备份,下次不用安装c++环境也行。注意,pnpm,yarn和npm没有区别,用啥都要这么做。
以下是安装使用过程中可能出现的问题:
- 注意:不要使用网上普遍的 windows-build-tools 命令安装 c++环境,这个早多年都没人维护了,你安装他,还要降级各个软件,够够的。
- 还有,
js var libm = ffi.Library('libm', { 'ceil': [ 'double', [ 'double' ] ] });
官网的这段代码是有问题的,windwos下不能执行,无法识别libm,只能用dll文件的绝对目录,或者相对目录才行。还有,如果你的dll文件,如果引用了别的dll文件,也要注意相对路径的问题,否则会报 126什么的错误。 - 还有一个问题,如果你的电脑系统是盗版的,可能安装visual studio这一步就会卡住。。。。
- 如果程序死循环了,程序会直接结束,不会报错。
新: - 24年最新的10.1.0版本,在windows上安装,需要Spectre 库,我也不知道什么玩意,但是默认这个不被安装的。需要到vs instanller里单独安装,给个安装方式的链接,https://learn.microsoft.com/zh-cn/visualstudio/msbuild/errors/msb8040?view=vs-2022; 如果不想安装这个Spectre 可以用之前的版本的node-gpy。
- 安装目录与版本问题:一. visual studio 安装的sdk目录不是默认的,可能会导致node-gyp识别不到,修改目录需要先卸载,然后删除visual studio 的相关注册表,
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\Setup
;二. 使用nvm切换了环境,可以再使用别的版本的node重新安装node-gyp试试看(npm uninstall -g node-gyp 卸载)。做完这两个操作,如果发现不行,别急,先重启一下试试看。
本人平时开发node addon比较多,遇到相关问题都会更新这篇博客,大家有需要可以关注一下这篇博客哦,也可联系我filecat@qq.com
。
其它推荐:
https://github.com/xiaobaidadada/filecat ; 我最近做的一个文件服务器。