Lettuce is a generic server process that checks the files within an elixir
project that has lettuce as a dependency and then runs iex -S mix
. It
initialises the state of the generic server with the .ex
files inside lib
and their last modified time. By default lib
is used but you may specify which
folders you want to be watched.
If available in Hex, the package can be installed
by adding lettuce
to your list of dependencies in mix.exs
:
...
def deps do
[
{:lettuce, "~> 0.1.0", only: :dev}
]
end
...
use Mix.Config
config :lettuce, folders_to_watch: ["apps"]
...
You can also change the refresh time to control how often the project files will be checked.
use Mix.Config
config :lettuce, refresh_time: 1500
...
Even though the start_link
will throw an error if the Mix.env
equals to
:dev
it is recommended to explicitly select the extra applications by
environment in the mix file.
...
def application do
[
extra_applications: extra_applications(Mix.env(), [:logger, ...])
]
end
defp extra_applications(:dev, default), do: default ++ [:lettuce]
defp extra_applications(_, default), do: default
...
While giving Node.js lessons as part of a charity called MigraCode in El Borne, Barcelona. We were reviewing some exercises and one of the steps in the instructions was to npm install nodemon, which reminded me of all the times I was inside IEx debbuging and I had to call recompile.
Josep Lluis Giralt D'Lacoste.
Lettuce is released under the MIT License. See the LICENSE file for further details.
- test everything
- dialyzer
- erlang time type for dyalizer
- caching plts in github actions
- pass the initial time from the setup to fix the flaky test
- capture log with silent
- remove redefined module warning
- code coverage
- all elixir run parameters as options
- use option parser
- package publishing when tagging
- how it works