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

使用rebar3添加依赖失败:调用jsx函数提示未定义

解决Rebar3依赖未拉取及函数未定义问题

以下是针对你遇到的jsx依赖问题的排查和解决步骤:

  • 检查rebar.config语法正确性
    确保依赖配置的结尾有正确的句点(Erlang配置文件要求句点结尾),错误的语法会导致Rebar3忽略依赖配置:

    {deps, [
        % 其他已有的依赖
        {jsx, "~> 3.0"}
    ]}.
    
  • 强制清理并重新拉取依赖
    本地构建缓存或旧状态可能导致依赖未拉取,执行以下命令重置构建流程:

    rebar3 clean
    rebar3 unlock
    rebar3 get-deps
    rebar3 compile
    

    其中rebar3 unlock会解锁依赖版本锁定,get-deps强制拉取最新符合版本要求的依赖包。

  • 验证依赖是否成功拉取
    查看项目根目录下的_build/default/lib目录,确认是否存在jsx文件夹。如果不存在,说明依赖配置仍有问题,回到第一步检查语法;如果存在,检查_build/default/lib/jsx/ebin下是否有jsx.beam文件,确认依赖已编译。

  • 确认应用依赖加载及启动

    • 若通过控制台运行应用,使用rebar3 shell启动,它会自动加载并启动所有配置的依赖应用,避免手动运行beam文件时未加载依赖的问题。
    • 若生成发布包,确保relx配置(若使用)包含jsx,或直接用rebar3 release生成包含所有依赖的完整发布包。
  • 检查目标函数是否存在于依赖版本中
    jsx 3.x版本可能未导出is_json/1函数,可在Rebar3 shell中验证:

    rebar3 shell
    % 先确认jsx已加载
    > code:which(jsx).
    % 查看jsx所有导出函数
    > jsx:module_info(exports).
    

    如果is_json/1不在列表中,说明该版本不支持此函数,可更换jsx版本,或使用jsx:decode/1结合错误处理来判断JSON有效性。

内容的提问来源于stack exchange,提问作者user1235

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 11:38:21