我有这个长生不老药模块:
defmodule MyApp.Router do
use Plug.Router
plug :match
plug :dispatch
get "/" do
send_resp(conn, 200, "Hello, World!")
end
end
我运行
mix compile --no-halt
,我得到:
% mix run --no-halt
===> 正在分析应用程序... ===> 编译cowboy_telemetry ==>plug_cowboy 编译 5 个文件 (.ex) 警告:Logger.warn/1 已弃用。使用 Logger.warning/2 代替 lib/plug/cowboy.ex:352: Plug.Cowboy.to_args/5
生成的plug_cowboy应用程序 ==> myapp 编译 2 个文件 (.ex) 错误:未定义函数 router/2 (期望 MyApp.Endpoint 定义这样的函数或将其 已导入,但没有可用的)lib/my_app/endpoint.ex:1: MyApp.Endpoint.plug_builder_call/2
== 文件 lib/my_app/endpoint.ex 中出现编译错误 == **(编译错误)lib/my_app/endpoint.ex:无法编译模块 MyApp.Endpoint(已记录错误)
我不知道这个错误意味着什么,我的 mix.exs 文件如下:
defmodule My.Api.MixProject do
use Mix.Project
def project do
[
app: :myapp,
version: "0.1.0",
elixir: "~> 1.15",
start_permanent: Mix.env() == :prod,
deps: deps()
]
end
def application do
[
extra_applications: [:logger],
mod: {MyApp.Endpoint, []}
]
end
defp deps do
[
{:plug_cowboy, "~> 2.6"},
{:cowboy, "~> 2.10"},
{:plug, "~> 1.12"}
]
end
end