【问题标题】:Node.js native addons: where is node_api.h located?Node.js 原生插件:node_api.h 位于何处?
【发布时间】:2020-08-27 00:42:54
【问题描述】:

我正在尝试为 Node.js 创建一个本机插件,当我包含时

#include <napi.h>

VS Code 的 Intelli Sense 表示它无法检测到 node_api.h 的位置(它包含在 napi.h 中)。

node-gyp build 运行良好并且可以编译。但我不明白系统中的标头在哪里,node-gyp 从哪里得到它?我需要添加 Intelli Sense 选项的路径,以便更好地了解总体构建过程。

我在玩this code example

【问题讨论】:

    标签: c++ node.js node-gyp node-addon-api


    【解决方案1】:

    您是否使用 Microsoft 的扩展程序 ms-vscode.cpptools?然后,您只需将 napi 使用的头文件的路径添加到 VSCode 中的包含路径: 将光标移到出现错误的包含行上-> 选择“快速修复”-> 应该有一个设置包含路径选项的选项(确切命名是特定于语言的)-> 新选项卡打开,在“包含路径”下添加路径

    头文件位于 appdata 中,如 RussCoder 所述。

    另见: https://code.visualstudio.com/docs/cpp/customize-default-settings-cpp

    【讨论】:

      【解决方案2】:

      我在 C 盘(我在 Windows 10 上)上进行了完整搜索,发现头文件 node_api.h 位于

      C:\Users\<UserName>\AppData\Local\node-gyp\Cache\<NodeVersion>\include\node
      

      以及其他标题,如 v8.h

      如果您删除该文件夹,node-gyp build 将不再有效。 node-gyp configure 再次下载所有头文件并恢复上述文件夹。

      【讨论】:

      • 在我的电脑里是C:/Users/&lt;user&gt;/.node-gyp/&lt;version&gt;/include/node
      • 如何在不硬编码 &lt;user&gt; 路径的情况下解决智能感知问题?
      • 工作得很好,但想知道如何避免硬编码用户名和节点版本
      【解决方案3】:

      你应该看看node-addon-api模块。

      可以通过require('node-addon-api').include 包含标题,或者您可以在node_modules/node-addon-api 文件夹中找到它。

      https://github.com/nodejs/node-addon-api/blob/master/doc/setup.md

      【讨论】:

      • require('node-addon-api').includenode_modules/node-addon-api 与我在 node_modules/node-addon-api/index.js 中看到的文件夹相同。有napi.h,但没有node_api.h
      猜你喜欢
      • 2018-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-07
      • 2015-08-29
      • 1970-01-01
      • 1970-01-01
      • 2017-07-28
      相关资源
      最近更新 更多