添加“timex v3.7”导致 Phoenix 服务无法启动“parse_trans_codegen”

问题描述 投票:0回答:2

原因:

我丢失了

erlang-syntax_tools
包裹。

当我在容器上尝试时,没有问题......将关闭问题。

我正在使用最新的软件包,将重新安装或暂时使用容器。


重现步骤

Erlang/OTP 24 [erts-12.3.2.1] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit]

===> Analyzing applications...
===> Compiling parse_trans
===> Compiling src/exprecs.erl failed
src/exprecs.erl:none: error in parse transform 'parse_trans_codegen':
exception error: undefined function erl_syntax:string/1
  in function  parse_trans:get_file/1 (LOCAL_PATH/calendo/deps/parse_trans/src/parse_trans.erl, line 227)
  in call from parse_trans:initial_context/2 (/LOCAL_PATH/calendo/deps/parse_trans/src/parse_trans.erl, line 299)
  in call from parse_trans_codegen:parse_transform/2 (LOCAL_PATH/calendo/deps/parse_trans/src/parse_trans_codegen.erl, line 147)
  in call from compile:foldl_transform/3 (compile.erl, line 1147)
  in call from compile:fold_comp/4 (compile.erl, line 418)
  in call from compile:internal_comp/5 (compile.erl, line 402)
  in call from compile:'-internal_fun/2-anonymous-0-'/2 (compile.erl, line 229)

即使混合 deps.compile prase_trans 或 deps.clean & deps.get 也会失败

我的本地设置是OTP 24、Elixir 1.13.4、Phoenix 1.6.10、rebar 3.19.0、Erts 12.3.2.1,整个应用程序代码都在这里。只需添加

timex
依赖项并启动服务就会导致此问题。

问题描述

当我添加

timex
dep 来混合并运行服务而无需任何额外代码时,错误就会发生。因此它是由其中的一个构造引入的。 这个错误很奇怪,因为
erl_syntax:string/1
似乎是一个有效的调用,它在错误堆栈中被通知为未定义。

elixir phoenix-framework elixir-mix
2个回答
1
投票

安装包

erlang-syntax_tools
修复了
timex
中所需的parse_trans问题。


0
投票

我没有足够的声誉来发表评论,也许这只是OP的一个拼写错误,但在我的系统上(根据elixir安装说明添加ppa:rabbitmq/rabbitmq-erlang apt存储库后的ubuntu 22.04)我需要安装

erlang-syntax-tools

© www.soinside.com 2019 - 2024. All rights reserved.