我如何指向mix.exs文件中的本地elixir版本?

时间:2017-07-30 23:31:59

标签: elixir phoenix-framework

所以我有一个凤凰项目,我正在使用它作为各种测试应用程序。如果我想使用我正在使用的本地版本的elixir源代码(并进行更改),我该如何告诉phoenix使用它?我也希望能够使用“iex -S mix”。下面的elixir: ["~> 1.6.0-dev", path: '/my/local/path/to/elixir']不起作用,但这正是我想要做的。

我已经尝试添加以下内容,但是出现语法错误。将elixir添加到依赖项(在def deps函数中)似乎没有做任何事情。我也使用kiex和kerl进行elixir版本配置。

defmodule PhoenixTestApp.Mixfile do
  use Mix.Project

  def project do
    [
      app: :phoenix_testbed,
      version: "0.0.1",
      elixir: ["~> 1.6.0-dev", path: '/my/local/path/to/elixir']
      elixirc_paths: elixirc_paths(Mix.env),
      compilers: [:phoenix, :gettext] ++ Mix.compilers,
      start_permanent: Mix.env == :prod,
      aliases: aliases(),
      deps: deps()
    ]
  end
  ## some more default config code generated by Phoenix
  # :
  # :
end

2 个答案:

答案 0 :(得分:2)

您需要使用本地elixir二进制文件。

例如,代替iex -S mix phx.server,执行$YOUR_LOCAL_ELIXIR_PATH/bin/iex -S mix phx.servermixelixir等其他内容相同。

答案 1 :(得分:2)

您的项目已经由elixir / iex运行,因此尝试在elixir / iex版内设置鸡蛋问题mix.exs / elixir 1}}文件。

选择环境更多是操作系统的属性,而不是项目的属性。在野外有许多不同的erlang / .exenv版本管理器。我会说(等等);

我个人使用后者,我很高兴。它允许为每个项目设置本地版本(使用本地list_of_dict = [{'text': s, 'value': s.split('.')[0]} for s in list_str] 文件),全局版本,以及在不同版本之间轻松切换。