Phoenix error: module not loaded/not available
Phoenix error: module not loaded/not available
我正在阅读《Programming Phoenix》这本书,正在研究实现记录 in/out 一个经过身份验证的用户的部分,但我收到一个错误,我不知道该如何处理:
mix phoenix.server
Compiled lib/rumbl.ex
Compiled lib/rumbl/repo.ex
Compiled web/channels/user_socket.ex
Compiled web/web.ex
Compiled web/models/user.ex
== Compilation error on file web/router.ex ==
** (UndefinedFunctionError) undefined function: Rumbl.Auth.init/1 (module Rumbl.Auth is not available)
Rumbl.Auth.init([repo: Rumbl.Repo])
(plug) lib/plug/builder.ex:198: Plug.Builder.init_module_plug/3
(plug) lib/plug/builder.ex:186: anonymous fn/4 in Plug.Builder.compile/3
(elixir) lib/enum.ex:1387: Enum."-reduce/3-lists^foldl/2-0-"/3
(plug) lib/plug/builder.ex:186: Plug.Builder.compile/3
web/router.ex:4: (module)
(stdlib) erl_eval.erl:669: :erl_eval.do_apply/6
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
== Compilation error on file lib/rumbl/endpoint.ex ==
** (UndefinedFunctionError) undefined function: Rumbl.Router.init/1 (module Rumbl.Router is not available)
Rumbl.Router.init([])
(plug) lib/plug/builder.ex:198: Plug.Builder.init_module_plug/3
(plug) lib/plug/builder.ex:186: anonymous fn/4 in Plug.Builder.compile/3
(elixir) lib/enum.ex:1387: Enum."-reduce/3-lists^foldl/2-0-"/3
(plug) lib/plug/builder.ex:186: Plug.Builder.compile/3
(phoenix) expanding macro: Phoenix.Endpoint.__before_compile__/1
lib/rumbl/endpoint.ex:1: Rumbl.Endpoint (module)
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
== Compilation error on file web/views/user_view.ex ==
** (CompileError) web/views/user_view.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found
expanding macro: Rumbl.Web.__using__/1
web/views/user_view.ex:2: Rumbl.UserView (module)
(elixir) expanding macro: Kernel.use/2
web/views/user_view.ex:2: Rumbl.UserView (module)
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
== Compilation error on file web/views/error_view.ex ==
** (CompileError) web/views/error_view.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found
expanding macro: Rumbl.Web.__using__/1
web/views/error_view.ex:2: Rumbl.ErrorView (module)
(elixir) expanding macro: Kernel.use/2
web/views/error_view.ex:2: Rumbl.ErrorView (module)
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
== Compilation error on file web/controllers/auth.ex ==
** (CompileError) web/controllers/auth.ex:3: module Comeonin.Bcypt is not loaded and could not be found
(stdlib) erl_eval.erl:669: :erl_eval.do_apply/6
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
== Compilation error on file web/controllers/user_controller.ex ==
** (CompileError) web/controllers/user_controller.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found
expanding macro: Rumbl.Web.__using__/1
web/controllers/user_controller.ex:2: Rumbl.UserController (module)
(elixir) expanding macro: Kernel.use/2
web/controllers/user_controller.ex:2: Rumbl.UserController (module)
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
== Compilation error on file web/controllers/page_controller.ex ==
** (CompileError) web/controllers/page_controller.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found
expanding macro: Rumbl.Web.__using__/1
web/controllers/page_controller.ex:2: Rumbl.PageController (module)
(elixir) expanding macro: Kernel.use/2
web/controllers/page_controller.ex:2: Rumbl.PageController (module)
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
== Compilation error on file web/views/session_view.ex ==
** (CompileError) web/views/session_view.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found
expanding macro: Rumbl.Web.__using__/1
web/views/session_view.ex:2: Rumbl.SessionView (module)
(elixir) expanding macro: Kernel.use/2
web/views/session_view.ex:2: Rumbl.SessionView (module)
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
== Compilation error on file web/views/page_view.ex ==
** (CompileError) web/views/page_view.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found
expanding macro: Rumbl.Web.__using__/1
web/views/page_view.ex:2: Rumbl.PageView (module)
(elixir) expanding macro: Kernel.use/2
web/views/page_view.ex:2: Rumbl.PageView (module)
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
== Compilation error on file web/views/layout_view.ex ==
** (CompileError) web/views/layout_view.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found
expanding macro: Rumbl.Web.__using__/1
web/views/layout_view.ex:2: Rumbl.LayoutView (module)
(elixir) expanding macro: Kernel.use/2
web/views/layout_view.ex:2: Rumbl.LayoutView (module)
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
== Compilation error on file web/controllers/session_controller.ex ==
** (CompileError) web/controllers/session_controller.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found
expanding macro: Rumbl.Web.__using__/1
web/controllers/session_controller.ex:2: Rumbl.SessionController (module)
(elixir) expanding macro: Kernel.use/2
web/controllers/session_controller.ex:2: Rumbl.SessionController (module)
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
我已经对照书检查并仔细检查了我的代码,但什么也看不到。
我的项目文件在这里:https://github.com/bordeltabernacle/learning-phoenix/tree/master/rumbl
据我所知 Rumbl.Auth.init
函数在 auth.ex
控制器文件中,我不确定 Rumbl.Router.Helpers
文件是什么或如何加载它.当我删除 router.ex
文件中唯一的新行时,由于应用程序正在运行,我得到了同样的错误。
恐怕我还不够了解自己解决这个问题。
我认为你应该尝试清理 deps,然后在启动服务器之前再次获取和编译
所以试试
mix deps.clean --all
mix deps.get
mix deps.compile
mix phoenix.server
祝你好运
你打错字了https://github.com/bordeltabernacle/learning-phoenix/blob/master/rumbl/web/controllers/auth.ex
import Comeonin.Bcypt, only: [checkpw: 2]
应该是
import Comeonin.Bcrypt, only: [checkpw: 2]
您也可以删除 _build
目录并使用 mix phoenix.server
(Phoenix 1.2) 或 mix phx.server
(Phoenix 1.3) 重新启动您的服务器。
这样做将第一次从头开始获取所有依赖项。我更喜欢这种方法,因为我不需要键入一堆命令,我只需要删除一个目录并重新运行我终端上的最近命令..这是mix phx.server
。是啊,我很懒。
祝你好运。
在我的例子中,发生这个错误是因为我不小心在 test
目录而不是 lib
目录中创建了一个模块。将它移动到 lib
目录修复它。
在我的伞式项目中,我在 tests
目录中添加了一个新的 support
目录,并且我的测试无法访问其中的 .ex
模块。
默认情况下,mix 仅在 lib
目录中查找要编译的文件。您可以通过在 mix.exs
.
中将 elixirc_paths 添加到 project
来添加另一个目录
我正在阅读《Programming Phoenix》这本书,正在研究实现记录 in/out 一个经过身份验证的用户的部分,但我收到一个错误,我不知道该如何处理:
mix phoenix.server
Compiled lib/rumbl.ex
Compiled lib/rumbl/repo.ex
Compiled web/channels/user_socket.ex
Compiled web/web.ex
Compiled web/models/user.ex
== Compilation error on file web/router.ex ==
** (UndefinedFunctionError) undefined function: Rumbl.Auth.init/1 (module Rumbl.Auth is not available)
Rumbl.Auth.init([repo: Rumbl.Repo])
(plug) lib/plug/builder.ex:198: Plug.Builder.init_module_plug/3
(plug) lib/plug/builder.ex:186: anonymous fn/4 in Plug.Builder.compile/3
(elixir) lib/enum.ex:1387: Enum."-reduce/3-lists^foldl/2-0-"/3
(plug) lib/plug/builder.ex:186: Plug.Builder.compile/3
web/router.ex:4: (module)
(stdlib) erl_eval.erl:669: :erl_eval.do_apply/6
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
== Compilation error on file lib/rumbl/endpoint.ex ==
** (UndefinedFunctionError) undefined function: Rumbl.Router.init/1 (module Rumbl.Router is not available)
Rumbl.Router.init([])
(plug) lib/plug/builder.ex:198: Plug.Builder.init_module_plug/3
(plug) lib/plug/builder.ex:186: anonymous fn/4 in Plug.Builder.compile/3
(elixir) lib/enum.ex:1387: Enum."-reduce/3-lists^foldl/2-0-"/3
(plug) lib/plug/builder.ex:186: Plug.Builder.compile/3
(phoenix) expanding macro: Phoenix.Endpoint.__before_compile__/1
lib/rumbl/endpoint.ex:1: Rumbl.Endpoint (module)
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
== Compilation error on file web/views/user_view.ex ==
** (CompileError) web/views/user_view.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found
expanding macro: Rumbl.Web.__using__/1
web/views/user_view.ex:2: Rumbl.UserView (module)
(elixir) expanding macro: Kernel.use/2
web/views/user_view.ex:2: Rumbl.UserView (module)
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
== Compilation error on file web/views/error_view.ex ==
** (CompileError) web/views/error_view.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found
expanding macro: Rumbl.Web.__using__/1
web/views/error_view.ex:2: Rumbl.ErrorView (module)
(elixir) expanding macro: Kernel.use/2
web/views/error_view.ex:2: Rumbl.ErrorView (module)
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
== Compilation error on file web/controllers/auth.ex ==
** (CompileError) web/controllers/auth.ex:3: module Comeonin.Bcypt is not loaded and could not be found
(stdlib) erl_eval.erl:669: :erl_eval.do_apply/6
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
== Compilation error on file web/controllers/user_controller.ex ==
** (CompileError) web/controllers/user_controller.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found
expanding macro: Rumbl.Web.__using__/1
web/controllers/user_controller.ex:2: Rumbl.UserController (module)
(elixir) expanding macro: Kernel.use/2
web/controllers/user_controller.ex:2: Rumbl.UserController (module)
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
== Compilation error on file web/controllers/page_controller.ex ==
** (CompileError) web/controllers/page_controller.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found
expanding macro: Rumbl.Web.__using__/1
web/controllers/page_controller.ex:2: Rumbl.PageController (module)
(elixir) expanding macro: Kernel.use/2
web/controllers/page_controller.ex:2: Rumbl.PageController (module)
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
== Compilation error on file web/views/session_view.ex ==
** (CompileError) web/views/session_view.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found
expanding macro: Rumbl.Web.__using__/1
web/views/session_view.ex:2: Rumbl.SessionView (module)
(elixir) expanding macro: Kernel.use/2
web/views/session_view.ex:2: Rumbl.SessionView (module)
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
== Compilation error on file web/views/page_view.ex ==
** (CompileError) web/views/page_view.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found
expanding macro: Rumbl.Web.__using__/1
web/views/page_view.ex:2: Rumbl.PageView (module)
(elixir) expanding macro: Kernel.use/2
web/views/page_view.ex:2: Rumbl.PageView (module)
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
== Compilation error on file web/views/layout_view.ex ==
** (CompileError) web/views/layout_view.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found
expanding macro: Rumbl.Web.__using__/1
web/views/layout_view.ex:2: Rumbl.LayoutView (module)
(elixir) expanding macro: Kernel.use/2
web/views/layout_view.ex:2: Rumbl.LayoutView (module)
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
== Compilation error on file web/controllers/session_controller.ex ==
** (CompileError) web/controllers/session_controller.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found
expanding macro: Rumbl.Web.__using__/1
web/controllers/session_controller.ex:2: Rumbl.SessionController (module)
(elixir) expanding macro: Kernel.use/2
web/controllers/session_controller.ex:2: Rumbl.SessionController (module)
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
我已经对照书检查并仔细检查了我的代码,但什么也看不到。
我的项目文件在这里:https://github.com/bordeltabernacle/learning-phoenix/tree/master/rumbl
据我所知 Rumbl.Auth.init
函数在 auth.ex
控制器文件中,我不确定 Rumbl.Router.Helpers
文件是什么或如何加载它.当我删除 router.ex
文件中唯一的新行时,由于应用程序正在运行,我得到了同样的错误。
恐怕我还不够了解自己解决这个问题。
我认为你应该尝试清理 deps,然后在启动服务器之前再次获取和编译
所以试试
mix deps.clean --all
mix deps.get
mix deps.compile
mix phoenix.server
祝你好运
你打错字了https://github.com/bordeltabernacle/learning-phoenix/blob/master/rumbl/web/controllers/auth.ex
import Comeonin.Bcypt, only: [checkpw: 2]
应该是
import Comeonin.Bcrypt, only: [checkpw: 2]
您也可以删除 _build
目录并使用 mix phoenix.server
(Phoenix 1.2) 或 mix phx.server
(Phoenix 1.3) 重新启动您的服务器。
这样做将第一次从头开始获取所有依赖项。我更喜欢这种方法,因为我不需要键入一堆命令,我只需要删除一个目录并重新运行我终端上的最近命令..这是mix phx.server
。是啊,我很懒。
祝你好运。
在我的例子中,发生这个错误是因为我不小心在 test
目录而不是 lib
目录中创建了一个模块。将它移动到 lib
目录修复它。
在我的伞式项目中,我在 tests
目录中添加了一个新的 support
目录,并且我的测试无法访问其中的 .ex
模块。
默认情况下,mix 仅在 lib
目录中查找要编译的文件。您可以通过在 mix.exs
.
project
来添加另一个目录