world update repl phx new hello descargar elixir mix iex

update - Haga que la aplicación elixir se compile y se vuelva a cargar al cambiar el código fuente



phoenix project elixir (4)

¿Cómo recompilar y recargar automáticamente mi aplicación iex + mix cada vez que modifico el código fuente?

Si no hay forma de que la combinación de mezclas iex + haga eso, ¿cuál es la alternativa más fácil? He comprobado la forma en que Phoenix realiza la recarga, y no parece ser fácil de implementar para mi pequeño proyecto de prueba.

También sé acerca de .iex.exs de José:

defmodule R do def reload! do Mix.Task.reenable "compile.elixir" Application.stop(Mix.Project.config[:app]) Mix.Task.run "compile.elixir" Application.start(Mix.Project.config[:app], :permanent) end end

Y no estoy extremadamente contento ya que no se está cargando automáticamente al cambiar el código, ¡todavía tengo que escribir R.reload! en iex.

Y ... por favor, ayúdame a crear la etiqueta "iex" en stackoverflow, mi reputación no es suficiente :)


Actualmente iex tiene una función interna para hacer esto:

invoque IEx.Helpers.recompile dentro de la consola iex .



Lo más cercano que sé está en Alchemist for emacs by @tonini. En Alchemist, hay una opción para habilitar

(setq alchemist-hooks-test-on-save t)

lo que lo hace compilar y ejecutar pruebas al guardar.

https://github.com/tonini/alchemist.el#testing


Para Erlang, estaba usando "relx -d" junto con https://github.com/rustyio/sync La "-d" significa que los archivos fuente están vinculados mediante enlaces simbólicos.

Lo mismo funciona muy bien en el elixir. En mix.exs agregué: sincronizar en los siguientes dos lugares

defp deps do [{:sync, git: "https://github.com/rustyio/sync.git", tag: "master"}, .... def application do [applications: [:logger, :sync],

Luego, el siguiente comando lo compila en una versión (antes de que funcione, deberás instalar hex y exrm).

mix release -dev

Ahora, cuando cambia un archivo .ex y lo guarda, se volverá a compilar y cargar directamente.

19:33:46.474 [info] ... /apps/testapp1/lib/kv/bucket.ex:0: Recompiled.

¡Solo quieres sincronización en tu entorno de desarrollo!