UndefinedFunctionError новый проект phoenix elixir

12

С новой установкой Phoenix я попытался запустить новый проект, и когда я пытаюсь запустить сервер, меня встретили:

Unchecked dependencies for environment dev:
 * gettext (Hex package)
  the dependency is not available, run "mix deps.get"
 * phoenix_live_reload (Hex package)
  the dependency is not available, run "mix deps.get"
 * cowboy (Hex package)
 * List item
...

, но когда я запускаю mix deps.get , я получаю:

Running dependency resolution
** (UndefinedFunctionError) undefined function Access.Map.get_and_update!/3 (module Access.Map is not available)
    Access.Map.get_and_update!(%Mix.Dep{app: :cowboy, deps: [], extra: [], from: "/Users/victoriawagman/Dropbox/Hemsidor/digitalocean/hello_phoenix/mix.exs", manager: nil, opts: [hex: :cowboy, build: "/Users/victoriawagman/Dropbox/Hemsidor/digitalocean/hello_phoenix/_build/dev/lib/cowboy", dest: "/Users/victoriawagman/Dropbox/Hemsidor/digitalocean/hello_phoenix/deps/cowboy"], requirement: "~> 1.0", scm: Hex.SCM, status: {:unavailable, "/Users/victoriawagman/Dropbox/Hemsidor/digitalocean/hello_phoenix/deps/cowboy"}, top_level: true}, :deps, #Function<13.85268495/1 in Hex.Resolver.attach_dep_and_children/3>)
    (hex) lib/hex/resolver.ex:188: Hex.Resolver.attach_dep_and_children/3
    (hex) lib/hex/resolver.ex:148: Hex.Resolver.get_deps/5
    (hex) lib/hex/resolver.ex:107: Hex.Resolver.activate/6
    (hex) lib/hex/resolver.ex:31: Hex.Resolver.resolve/3
    (hex) lib/hex/remote_converger.ex:31: Hex.RemoteConverger.converge/2
    (mix) lib/mix/dep/converger.ex:92: Mix.Dep.Converger.all/4
    (mix) lib/mix/dep/converger.ex:47: Mix.Dep.Converger.converge/4

Я в убытке за то, что искать, чтобы углубиться в попытку выяснить, что я могу сделать, чтобы понять, что не так, и исправить это. Пожалуйста, предположите, что я понятия не имею, я учусь.

Кроме того, я не знаю, как отдельно переустанавливать только hex, поэтому я ищу это сейчас, если это так, что у меня также есть поврежденная установка hex .

    
задан Alisso 02.01.2016 в 16:41
источник
  • какую версию Elixir вы используете? –  sevenseacat 02.01.2016 в 17:00
  • Какую версию Phoenix и Elixir вы используете? Вы можете найти свою версию Elixir, набрав iex -version, и вы можете увидеть свою версию phoenix, ища задачу phoenix.new после запуска микса –  TheStoneFox 02.01.2016 в 17:01
  • iex --version Erlang / OTP 18 [erts-7.2.1] [source] [64-bit] [smp: 4: 4] [async-threads: 10] [hipe] [kernel-poll: false] [dtrace] и Phoenix v1.1.1 –  Alisso 02.01.2016 в 17:08
  • Сладкий! Что версия феникса включена в микс phoenix.new: D –  Alisso 02.01.2016 в 17:09

1 ответ

28

Кажется, что моя установка hex была повреждена. запуск

mix local.hex

согласно предложение Хенрика решило это! У него был бы пост кто-то другой, указывающий, что hex может быть поврежден .

Далее появилось предупреждение о недостающем модульном бранче, но это было решено путем запуска npm install (в качестве вывода при запуске сервера).

Счастливые дни!

    
ответ дан Alisso 02.01.2016 в 17:17
  • Рад, что вы это исправили! : D Hex, вероятно, получил «коррумпированный», потому что вы обновили версию Elixir, а старый Hex, для старых версий Elixir, все еще был установлен на вашем компьютере. –  José Valim 03.01.2016 в 09:24