Node.js中的C++插件是否可以覆盖某些V8类或方法



我不是C++程序员,所以如果这是一个愚蠢的问题,请原谅我。

假设我想在V8中更改一个特定的行为。当然,我可以在deps/v8中更改它,然后从源代码构建Node.js。但我正在寻找更简单的方法。

我可以写一个C++插件来覆盖V8中我想要的内容吗?

例如,我可以创建一个空的插件:吗

namespace MY_EMPTY_ADDON
{
  void init(v8::Local<v8::Object> exports, v8::Local<v8::Object> module)
  {
    // empty
  }
  NODE_MODULE(MY_EMPTY_ADDON, init)
}

然后,在同一个文件中添加一些类似的内容:

namespace v8
{
  namespace internal
  {
    // here I do my changes
  }
}

这行得通吗?

否。C++不允许像JavaScript那样进行猴子补丁。不能从外部覆盖其他模块/库的函数。

最新更新