Elixir phoenix live reload不起作用

时间:2017-12-05 03:38:57

标签: elixir phoenix-framework

我的操作系统是最新的macOS high sierra。我通过Homebrew安装了elixir和所有依赖项。我创建了一个新的Phoenix应用程序。它显示出一些错误。实时重新加载不起作用。以下是信息。

[error] Can't find executable `mac_listener`
[warn] Could not start Phoenix live-reload because we cannot listen to the file system.
You don't need to worry! This is an optional feature used during development to
refresh your browser when you save files and it does not affect production.

似乎有些文件更改侦听器服务没有运行。但我不知道如何解决它。

4 个答案:

答案 0 :(得分:9)

我通过重新安装命令行工具解决了这个问题。 打开bash,然后输入:

xcode-select --install

然后,运行mix deps.compile file_system重新编译file_system模块。完成。

答案 1 :(得分:0)

以上答案对我有用(运行Mojave),但正如所评论的那样,显然并不适合所有人。根据我在Elixir论坛上遇到的讨论,这似乎是其他用户也遇到的持续存在的问题:Can’t find executable mac_listener - [error] exited in: GenServer.call

一个用户指出,尝试以下所有操作后,他们仍然遇到问题:

  • 卸载Xcode
  • 删除命令行工具
  • mix deps.clean --all && rm -rf _build deps
  • 重新安装Xcode
  • 运行xcode-select --install,接受许可协议
  • 重启
  • 运行mix deps.get && mix deps.compile file_system
  • 找到/CoreServices.h
  • export CFLAGS =“-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include”

似乎对特定用户有所帮助的最后一步是运行以下命令:open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

另一位Catalina用户建议通过运行export SDKROOT="$(xcrun --sdk macosx --show-sdk-path)"然后重新编译dep在.bash_profile中设置正确的标头路径。

希望这些附加信息对某人有所帮助。

答案 2 :(得分:0)

我已经解决了此问题的解决方案,因为我已经安装了xcode-select:

 sudo xcode-select --reset

然后:

mix deps.compile file_system

您可以检查是否安装了:xcode-select -v 路径: xcode-select -p

答案 3 :(得分:0)

以上解决方案都不适合我。在我的情况下,我必须做的是让 phoenix live reload 工作(设置没问题),是删除 mix.lock 文件,然后运行 ​​mix deps.get && mix deps.compile file_system