Dependencies
| The deps function | |
| mix deps.get | |
| The lockfile | |
| An example dep entry |
The deps function
Dependencies live in mix.exs inside a private function named deps. Each entry names a package plus the versions the project accepts. An empty list means the project uses the standard library only.
defp deps do
[]
end
mix deps.get
After editing mix.exs, fetch the listed packages with one command. Mix downloads each package once and stores it outside the project folder.
mix deps.get
Run the command again after every dependency change. If the list did not change, the command finishes fast with nothing to do.
The lockfile
The file mix.lock records the exact version fetched for every package. Commit it to version control so every machine and every build resolves the same versions.
Never edit the lockfile by hand. Change the requirement in mix.exs, run fetch again, and let Mix rewrite the locked versions.
An example dep entry
The entry below is an example only. It shows the shape of one Hex package entry for a JSON library. Add a dependency only when the project truly needs it.
# Example only - one Hex package entry
defp deps do
[{:jason, "~> 1.4"}]
end
Next: Testing with ExUnit
Article author: Arthur Isaev