如何运行Elixir应用程序?

卡米尔(Kamil Lelonek)

运行Elixir应用程序的正确方法是什么?

我通过以下方式创建一个简单的项目:

mix new app

然后我可以做:

mix run

基本上可以一次编译我的应用 所以当我添加:

IO.puts "running"

lib/app.ex"running"第一次看到的情况下,run除非有一些更改,否则每个连续项都不会执行任何操作。接下来,我该怎么办app.app

我当然知道我可以做到:

escript: [main_module: App]

在中mix.exs,提供def main(args):,然后:

mix escript.build
./app

但我认为这有点麻烦。

还有类似的东西:

elixir lib/app.exs

但这并不mix.exs明显,这对于my中的依赖项是必需的app

PawełObrok

mix run确实运行您的应用程序。只是当您简单地将IO.puts "something"文件放入文件中时,该行仅在编译时求值,而在运行时它什么也不做。如果您希望在启动应用程序时入门,则需要在中指定mix.exs

通常,您需要一个Application入门的顶层为此,请mod向您添加一个选项mix.exs

def application do
  [
    # this is the name of any module implementing the Application behaviour
    mod: {NewMix, []},
    applications: [:logger]
  ]
end

然后在该模块中,您需要实现一个在应用程序启动时将被调用的回调:

defmodule NewMix do
  use Application

  def start(_type, _args) do
    IO.puts "starting"
    # some more stuff
  end
end

start回调实际上应该设置你的顶级工艺或监督树的根,但在这种情况下,你会看到已经是它被称为每次使用的时间mix run,虽然紧随其后的错误。

def start(_type, _args) do
  IO.puts "starting"
  Task.start(fn -> :timer.sleep(1000); IO.puts("done sleeping") end)
end

在这种情况下,我们在回调中开始一个简单的过程,只需睡眠一秒钟然后输出某些信息-这足以满足start回调的API的需要,但是我们没有看到"done sleeping"其原因是,默认情况下mix run,该回调完成执行后将退出。为了避免mix run --no-halt这种情况的发生,您需要使用-在这种情况下,VM不会停止。

启动应用程序的另一种有用方法是iex -S mix-行为类似于mix run --no-halt但又打开了一个iexShell,您可以在其中与代码和正在运行的应用程序进行交互。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Elixir:从父目录运行应用程序

来自分类Dev

如何检查Phoenix / Elixir / Erlang应用程序的正常运行时间?

来自分类Dev

如何检查Phoenix / Elixir / Erlang应用程序的正常运行时间?

来自分类Dev

在应用程序启动Phoenix框架(Elixir)上运行代码

来自分类Dev

Elixir 应用程序运行一个 PHP 脚本

来自分类Dev

如何运行Flask应用程序?

来自分类Dev

如何使我的应用程序运行更快

来自分类Dev

如何设置运行应用程序的JProgressbar

来自分类Dev

如何自动运行hadoop应用程序?

来自分类Dev

如何运行我的Android应用程序?

来自分类Dev

如何运行angular 2应用程序?

来自分类Dev

如何在 phoenix elixir 聊天应用程序的监督树中运行 Redix 并从不同模块访问

来自分类Dev

如何要求在Elixir Phoenix应用程序中登录?

来自分类Dev

如何停止以“分离”模式启动的Elixir应用程序?

来自分类Dev

如何要求在Elixir Phoenix应用程序中登录?

来自分类Dev

elixir 伞形应用程序中如何处理多个应用程序配置文件

来自分类Dev

如何从JFrame应用程序运行applet程序?

来自分类Dev

Elixir中的外部应用程序配置

来自分类Dev

Elixir / Phoenix应用程序部署工具

来自分类Dev

应用程序中的Elixir源代码

来自分类Dev

如何在Android Studio中终止应用程序-在单独的设备上运行的应用程序

来自分类Dev

Android,Gradle。如何构建应用程序并从测试应用程序运行测试

来自分类Dev

Gradle应用程序插件:如何使用-javaagent选项运行jvm应用程序?

来自分类Dev

如果使用应用程序工厂模式,如何在gunicorn中运行flask应用程序?

来自分类Dev

iOS Enterprise应用程序-如何确保我的应用程序在后台运行?

来自分类Dev

如何在Qt应用程序中通过终端命令运行分离的应用程序?

来自分类Dev

C#如何使应用程序即使在删除应用程序文件后仍继续运行

来自分类Dev

如何判断handleOpenURL是应用程序启动还是应用程序运行?

来自分类Dev

如何访问正在运行的应用程序的应用程序清单?

Related 相关文章

  1. 1

    Elixir:从父目录运行应用程序

  2. 2

    如何检查Phoenix / Elixir / Erlang应用程序的正常运行时间?

  3. 3

    如何检查Phoenix / Elixir / Erlang应用程序的正常运行时间?

  4. 4

    在应用程序启动Phoenix框架(Elixir)上运行代码

  5. 5

    Elixir 应用程序运行一个 PHP 脚本

  6. 6

    如何运行Flask应用程序?

  7. 7

    如何使我的应用程序运行更快

  8. 8

    如何设置运行应用程序的JProgressbar

  9. 9

    如何自动运行hadoop应用程序?

  10. 10

    如何运行我的Android应用程序?

  11. 11

    如何运行angular 2应用程序?

  12. 12

    如何在 phoenix elixir 聊天应用程序的监督树中运行 Redix 并从不同模块访问

  13. 13

    如何要求在Elixir Phoenix应用程序中登录?

  14. 14

    如何停止以“分离”模式启动的Elixir应用程序?

  15. 15

    如何要求在Elixir Phoenix应用程序中登录?

  16. 16

    elixir 伞形应用程序中如何处理多个应用程序配置文件

  17. 17

    如何从JFrame应用程序运行applet程序?

  18. 18

    Elixir中的外部应用程序配置

  19. 19

    Elixir / Phoenix应用程序部署工具

  20. 20

    应用程序中的Elixir源代码

  21. 21

    如何在Android Studio中终止应用程序-在单独的设备上运行的应用程序

  22. 22

    Android,Gradle。如何构建应用程序并从测试应用程序运行测试

  23. 23

    Gradle应用程序插件:如何使用-javaagent选项运行jvm应用程序?

  24. 24

    如果使用应用程序工厂模式,如何在gunicorn中运行flask应用程序?

  25. 25

    iOS Enterprise应用程序-如何确保我的应用程序在后台运行?

  26. 26

    如何在Qt应用程序中通过终端命令运行分离的应用程序?

  27. 27

    C#如何使应用程序即使在删除应用程序文件后仍继续运行

  28. 28

    如何判断handleOpenURL是应用程序启动还是应用程序运行?

  29. 29

    如何访问正在运行的应用程序的应用程序清单?

热门标签

归档