Introdução
O Mix é a ferramenta de build padrão do Elixir, projetada para automatizar tarefas comuns como criação de projetos, compilação, testes e gerenciamento de dependências. Embora seja semelhante a ferramentas como a CLI do dotnet, o Mix oferece maior extensibilidade e está profundamente integrado ao ecossistema do Elixir.
Recursos Principais
Criando um Projeto
Gere um novo projeto Elixir com um único comando:
mix new friends
Isso cria um projeto estruturado com um arquivo mix.exs no seu núcleo.
O Arquivo mix.exs
Este arquivo define as configurações do projeto, dependências e tarefas. Aqui está um exemplo mínimo:
defmodule Friends.MixProject do
use Mix.Project
def project do
[
app: :friends,
version: "0.1.0",
elixir: "~> 1.18",
start_permanent: Mix.env() == :prod,
deps: deps()
]
end
def application do
[extra_applications: [:logger]]
end
defp deps do
[] # Dependências vão aqui
end
end
Gerenciamento de Dependências
Adicionando Dependências
Edite a função deps
no arquivo mix.exs:
defp deps do
[
{:ecto_sql, "~> 3.0"},
{:postgrex, ">= 0.0.0"}
]
end
⚠️ Nota: Ao contrário do npm ou cargo, o Mix não possui um comando como mix deps.add
— edite o mix.exs manualmente.
Restaurando Dependências
mix deps.get # Busca as dependências
mix deps.compile # Compila-as
Atualizando Dependências
Atualize um pacote específico:
mix deps.update ecto_sql
Atualize todos os pacotes:
mix deps.update --all
O Mix usa um arquivo mix.lock para garantir versões consistentes em diferentes ambientes.
Fluxos de Trabalho Comuns
Compilando o Projeto
mix compile
Executando Testes
mix test
Estendendo o Mix
Aliases (Atalhos)
Os aliases do Mix são atalhos personalizados definidos no arquivo mix.exs para simplificar ou combinar tarefas repetitivas. Eles permitem:
- Encadear múltiplos comandos do Mix em um só.
- Criar fluxos de trabalho específicos para o projeto.
- Simplificar processos complexos de build/teste/deploy.
def project do
[
...,
aliases: aliases()
]
end
defp aliases do
[
build_test: ["compile", "test"],
"build:test": ["compile", "test"]
]
end
Execute com:
mix build_test
Tarefas Personalizadas
Crie tarefas reutilizáveis (ex: lib/mix/tasks/hello.ex
):
defmodule Mix.Tasks.Hello do
@moduledoc "Exibe uma saudação: `mix help hello`"
use Mix.Task
@shortdoc "Imprime 'hello' no console"
def run(_args) do
IO.puts("hello")
end
end
Execute com:
mix hello
Por que o Mix se Destaca?
-
Extensível: Frameworks como Phoenix e Ecto adicionam suas próprias tarefas (ex:
mix ecto.gen.repo
). - Completo: Tarefas embutidas para testes, compilação e gerenciamento de dependências.
- Comunidade Ativa: A maioria das bibliotecas Elixir se integra perfeitamente ao Mix.
Conclusão
O Mix é a espinha dorsal do desenvolvimento em Elixir. Sua simplicidade para tarefas comuns e flexibilidade para customização o tornam indispensável.
Próximos Passos:
- Explore a documentação oficial do Mix.
Top comments (0)