升级到elixir 1.6.1时出现Mix.Shell.cmd错误

时间:2018-02-07 05:41:43

标签: elixir mix

我的代码在elixir 1.5.2上工作正常,然后我升级为elixir 1.6.1。它给了我Mix.Shell.cmd/2未定义或私有错误。这是代码

   def run(args) do
     file = List.first(args) || "priv/static/apiv1docs.json"
     Mix.Shell.cmd("rm -rf " <> file, &IO.puts(&1))
     IO.puts("Removed " <> file)
   end

它给了我错误。Mix.Shell.cmd/2未定义或私有错误。你的意思是cmd/3之一。

1.5.2之前它工作正常。

非常感谢任何帮助

由于

1 个答案:

答案 0 :(得分:3)

Mix.Shell.cmd有3个参数:

  

cmd(command, options, callback)

您可以将空列表作为第二个参数传递以使用默认选项。

You can see the docs here

在1.5.2中,函数定义将[]作为选项的默认值:

  

cmd(command, options \\ [], callback)

。我不确定他们为什么要改变它

Mix.Shell.cmd/3 v1.5.2