Mix File - легендарный редактор музыкальных файлов
Mix файл - это файл, используемый в проектах на языке программирования Elixir, для описания зависимостей проекта, конфигурационных настроек, сборки и запуска приложения. Рассмотрим подробнее, как работают Mix файлы.
Описанием зависимостей проекта может выступать секция deps в Mix файле. Например, мы хотим использовать в нашем проекте библиотеку Plug, которая позволяет создавать веб-приложения на Elixir. Для этого мы добавляем следующую строку в секцию deps:
{:plug, "~> 1.11.0"}
Таким образом, мы сообщаем Mix, что наше приложение зависит от библиотеки Plug версии не ниже 1.11.0. При запуске команды mix deps.get Mix загрузит указанные зависимости из интернета и установит их в наш проект.
Mix файл также может содержать конфигурационные настройки, например, настройки базы данных. Секция config позволяет определить настройки, которые изменяют поведение приложения в различных ситуациях. Например, для настройки базы данных Postgres в секции config добавляем следующий код:
config :my_app, MyApp.Repo,
username: "postgres",
password: "password",
database: "my_app_dev",
hostname: "localhost",
port: 5432
Для сборки и запуска приложения используются специальные команды в командной строке, например, mix compile для компиляции кода. Mix также позволяет создавать свои собственные команды с помощью механизма тасков.
Пример Mix файла с описанием зависимостей и конфигурационных настроек:
defmodule MyApp.Mixfile do
use Mix.Project
def project do
[
app: :my_app,
version: "0.1.0",
elixir: "~> 1.10",
start_permanent: Mix.env() == :prod,
deps: deps(),
strong_params_enabled: true, # наше собственное значение конфигурации
test_coverage: [tool: ExCoveralls] # другое нашептывание
]
end
def application do
[
mod: {MyApp.Application, []},
extra_applications: [:logger, :runtime_tools]
]
end
defp deps do
[
{:plug, "~> 1.11.0"},
{:phoenix, "~> 1.3.0"},
{:postgrex, "~> 0.15.0"},
{:ecto, "~> 2.1.0"}
]
end
end