【发布时间】:2019-03-07 09:25:16
【问题描述】:
我的本地 Mac 上有完全相同的代码和版本,可以正常运行混合命令。我提取了一个全新的项目副本以确保。没有 _build、deps 或 tmp 目录。此错误未提供有关问题的任何信息。可能会发生什么,或者我可以研究什么来解决这个问题?
问题出在 Ubuntu 18.04 LTS 上。我已经尝试了多个 erlang/elixir 版本,并且都在下面产生相同的输出。
root@instance-1:/srv/zipbooks/phoenix-api# elixir -v
Erlang/OTP 21 [erts-10.2.5] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [hipe]
Elixir 1.8.1 (compiled with Erlang/OTP 21)
root@instance-1:/srv/zipbooks/phoenix-api# mix compile
** (FunctionClauseError) no function clause matching in IO.chardata_to_string/1
The following arguments were given to IO.chardata_to_string/1:
# 1
nil
Attempted function clauses (showing 2 out of 2):
def chardata_to_string(string) when is_binary(string)
def chardata_to_string(list) when is_list(list)
(elixir) lib/io.ex:461: IO.chardata_to_string/1
(elixir) lib/path.ex:512: Path.join/2
(stdlib) erl_eval.erl:680: :erl_eval.do_apply/6
(stdlib) erl_eval.erl:888: :erl_eval.expr_list/6
(stdlib) erl_eval.erl:240: :erl_eval.expr/5
(stdlib) erl_eval.erl:232: :erl_eval.expr/5
(stdlib) erl_eval.erl:233: :erl_eval.expr/5
(stdlib) erl_eval.erl:888: :erl_eval.expr_list/6
【问题讨论】:
-
你是从 git 克隆的吗?如果是这样,也许检查你的 gitignore 中的内容,并确保你复制了任何可能丢失的文件
-
我确实检查过了,gitignore 中没有任何可以依赖的东西
-
服务器上的
dev和prod环境中是否都会发生错误?我只是在这里猜测,但我在mix/tasks/deps.compile.ex中看到很多Path.join调用。也许您仅在 dev 中包含依赖项,或者在您的mix.exs中包含其他配置错误的内容。 -
我尝试了所有三种环境,dev、prod 和 test
-
好的。
mix deps.compile是否给您同样的错误?