v8 NAN支持从Nodejs 10迁移到14

编程入门 行业动态 更新时间:2024-10-09 19:14:49

v8 <a href=https://www.elefans.com/category/jswz/34/1760183.html style=NAN支持从Nodejs 10迁移到14"/>

v8 NAN支持从Nodejs 10迁移到14

在Windows上,我的NodeJS / Electron应用程序依赖于本机库。该应用程序通过基于NAN的第三方节点模块与此库进行交互。

此模块运行良好,但已过期。这迫使我们坚持使用Nodejsv10.x.x。否则,v14.x.x npm install命令将失败,并带有

错误C2661:'v8 :: Value :: BooleanValue':没有重载函数接受0个参数

我能够追踪到v8引擎中在v10.x.x中标记为已贬值并在v14.x.x(实际为v12.x.x)中删除的API。我通过更改

中的代码在本地修复了它
info[0]->BooleanValue()

to

info[0]->BooleanValue(Nan::GetCurrentContext()->GetIsolate())

即类似于另一个模块上的this PR。

缺点是这会给使用Node 10.x.x的人带来错误

error C2664: 'bool v8::Value::BooleanValue(void) const': cannot convert argument 1 from 'v8::Isolate *' to 'v8::Local<v8::Context>'

有没有很好的方法来用NAN模块支持不同版本的Node.js?即考虑到不兼容的v8 API的更改?可以在代码中处理对不同版本的支持吗?还是维护者被迫发布对模块的严格支持Nodejs版本的不同版本。

回答如下:

在NodeJS帮助站点上询问了以上问题,并收到了以下答案

https://github/nodejs/help/issues/2722

Nan::To<bool>(info[0]).FromJust()

对于NodeJS 10、12和14来说非常合适。

更多推荐

v8 NAN支持从Nodejs 10迁移到14

本文发布于:2024-05-13 09:55:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1759402.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:NAN   Nodejs

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!