Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 1.10.2/Phoenix 1.5模板更改后,通常会得到;无法定义模块。。。因为它目前正在“中定义”;(2020年年中)_Elixir_Phoenix_Slime - Fatal编程技术网

Elixir 1.10.2/Phoenix 1.5模板更改后,通常会得到;无法定义模块。。。因为它目前正在“中定义”;(2020年年中)

Elixir 1.10.2/Phoenix 1.5模板更改后,通常会得到;无法定义模块。。。因为它目前正在“中定义”;(2020年年中),elixir,phoenix,slime,Elixir,Phoenix,Slime,我仍然经常使用最新的elixir/phoenix出现此错误,因此这与elixir v1.0.3中修复的错误不同,如下所述: 在另一个终端中运行mix.compile会显示错误,在本例中,它是一个slime模板: ** (TokenMissingError) lib/tealdog_web/templates/workspace/_row_controls_center.html.sleex:30: missing terminator: " (for string starting a

我仍然经常使用最新的elixir/phoenix出现此错误,因此这与elixir v1.0.3中修复的错误不同,如下所述:

在另一个终端中运行mix.compile会显示错误,在本例中,它是一个slime模板:

** (TokenMissingError) lib/tealdog_web/templates/workspace/_row_controls_center.html.sleex:30: missing terminator: " (for string starting at line 27)
    (eex 1.10.2) lib/eex/compiler.ex:45: EEx.Compiler.generate_buffer/4
    (phoenix 1.5.4) lib/phoenix/template.ex:351: Phoenix.Template.compile/3
    (phoenix 1.5.4) lib/phoenix/template.ex:166: anonymous fn/4 in Phoenix.Template."MACRO-__before_compile__"/2
    (elixir 1.10.2) lib/enum.ex:2111: Enum."-reduce/3-lists^foldl/2-0-"/3
    (phoenix 1.5.4) expanding macro: Phoenix.Template.__before_compile__/1
    lib/tealdog_web/views/workspace_view.ex:1: TealdogWeb.WorkspaceView (module)
    (elixir 1.10.2) lib/kernel/parallel_compiler.ex:304: anonymous fn/4 in Kernel.ParallelCompiler.spawn_workers/7
我不确定这是否是特定于粘液。我在GitHub()上的
slime lang
问题列表中没有看到任何问题

这似乎是一个相当普遍的问题,在许多情况下没有得到解决,而且很难纠正。有人有办法吗

  defp deps do
    [{:phoenix, "~> 1.5.3"},
      ...
      {:phoenix_slime, "~> 0.13.1"},
      ...]
Elixir版本1.10.2,选项21

elixir -v
Erlang/OTP 21 [erts-10.3.4] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [hipe]

Elixir 1.10.2 (compiled with Erlang/OTP 21)

此错误主要发生在两种情况下:

  • 模块之间存在无法通过编译器的依赖关系图解决的动态交叉引用,或者
  • 某些库/代码使用动态创建模块,但编写得不够准确,无法处理此问题
在这种情况下,编译文件的顺序是随机的,因此您会遇到这种古怪的行为。我建议的唯一修复方法是明确要求问题模块中的其他模块确保编译顺序(使用
alias
或类似工具)

此外,使用库可能使错误源检测更容易