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

Mix.Shell.cmd error when upgraded to elixir 1.6.1

我的代码在 elixir 1.5.2 上运行良好,然后我升级到 elixir 1.6.1。它给了我 Mix.Shell.cmd/2 is undefined or private 错误。这是代码

   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 上运行良好。

如有任何帮助,我们将不胜感激

谢谢

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