You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js集成Node-API模块时遭遇模块解析失败(意外字符)问题求助

Next.js集成Node-API模块时遭遇模块解析失败(意外字符)问题求助

各位大佬好,我最近按照步骤创建了一个Node-API模块,想在Next.js项目里集成使用,但过程中碰到了模块解析失败的问题,提示存在意外字符,折腾好久都没解决,特意来求助大家!

先跟大家说下我创建这个Node-API模块的完整流程:

  • 第一步:创建模块目录并完成初始化
mkdir addon
cd addon
npm init -y
npm install --save-dev node-gyp
npm install node-addon-api
  • 第二步:编写addon.cc文件,代码如下:
#include <napi.h>

Napi::String Hello(const Napi::CallbackInfo& info) {
  Napi::Env env = info.Env();
  return Napi::String::New(env, "Hello from C++!");
}

Napi::Object Init(Napi::Env env, Napi::Object exports) {
  exports.Set(Napi::String::New(env, "hello"),
              Napi::Function::New(env, Hello));
  return exports;
}

NODE_API_MODULE(addon, Init)
  • 第三步:配置binding.gyp文件,内容如下:
{
  "targets": [
    {
      "target_name": "addon",
      "sources": [ "addon.cc" ],
      "include_dirs": [
            "<!@(node -p \"require('node-addon-api').include\")"
        ],
        "libraries": [],
        "dependencies": [
            "<!(node -p \"require('node-addon-api').gyp\")"
        ],
        // 省略了其余编译相关配置项
    }
  ]
}

之后我正常编译了这个模块,在普通Node.js项目里测试时,能顺利调用hello()方法并得到预期结果。但把它放到Next.js项目中引入后,直接弹出了模块解析失败的错误,提示内容大致是:Unexpected character '' (Note that you need appropriate loaders to handle this file type, currently no loaders are configured to process this file.),错误指向的是编译生成的.node文件。

我尝试过在Next.js的next.config.js里配置webpack规则,添加对.node文件的处理逻辑,但似乎没起到效果。有没有大佬遇到过类似的问题?能不能指点下,Next.js该怎么配置才能正确加载这个Node-API模块呢?

备注:内容来源于stack exchange,提问作者Mart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 09:04:28