/ mix.exs
mix.exs
 1  defmodule Hithliner.MixProject do
 2    use Mix.Project
 3  
 4    def project do
 5      [
 6        app: :hithliner,
 7        version: "0.1.0",
 8        elixir: "~> 1.14",
 9        elixirc_paths: elixirc_paths(Mix.env()),
10        start_permanent: Mix.env() == :prod,
11        aliases: aliases(),
12        deps: deps()
13      ]
14    end
15  
16    # Configuration for the OTP application.
17    #
18    # Type `mix help compile.app` for more information.
19    def application do
20      [
21        mod: {Hithliner.Application, []},
22        extra_applications: [:logger, :runtime_tools]
23      ]
24    end
25  
26    # Specifies which paths to compile per environment.
27    defp elixirc_paths(:test), do: ["lib", "test/support"]
28    defp elixirc_paths(_), do: ["lib"]
29  
30    # Specifies your project dependencies.
31    #
32    # Type `mix help deps` for examples and options.
33    defp deps do
34      [
35        {:bcrypt_elixir, "~> 3.0"},
36        {:phoenix, "~> 1.7.11"},
37        {:phoenix_ecto, "~> 4.4"},
38        {:ecto_sql, "~> 3.10"},
39        {:postgrex, ">= 0.0.0"},
40        {:phoenix_html, "~> 4.0"},
41        {:phoenix_live_reload, "~> 1.2", only: :dev},
42        {:phoenix_live_view, "~> 0.20.2"},
43        {:floki, ">= 0.30.0", only: :test},
44        {:phoenix_live_dashboard, "~> 0.8.3"},
45        {:esbuild, "~> 0.8", runtime: Mix.env() == :dev},
46        {:tailwind, "~> 0.2", runtime: Mix.env() == :dev},
47        {:heroicons,
48         github: "tailwindlabs/heroicons",
49         tag: "v2.1.1",
50         sparse: "optimized",
51         app: false,
52         compile: false,
53         depth: 1},
54        {:swoosh, "~> 1.5"},
55        {:finch, "~> 0.13"},
56        {:telemetry_metrics, "~> 0.6"},
57        {:telemetry_poller, "~> 1.0"},
58        {:gettext, "~> 0.20"},
59        {:jason, "~> 1.2"},
60        {:dns_cluster, "~> 0.1.1"},
61        {:bandit, "~> 1.2"},
62        {:ecsx, "~> 0.5"},
63        {:ecsx_live_dashboard, "~> 0.1"},
64        {:pqueue, "~> 2.0"}
65      ]
66    end
67  
68    # Aliases are shortcuts or tasks specific to the current project.
69    # For example, to install project dependencies and perform other setup tasks, run:
70    #
71    #     $ mix setup
72    #
73    # See the documentation for `Mix` for more info on aliases.
74    defp aliases do
75      [
76        setup: ["deps.get", "ecto.setup", "assets.setup", "assets.build"],
77        "ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"],
78        "ecto.reset": ["ecto.drop", "ecto.setup"],
79        test: ["ecto.create --quiet", "ecto.migrate --quiet", "test"],
80        "assets.setup": ["tailwind.install --if-missing", "esbuild.install --if-missing"],
81        "assets.build": ["tailwind hithliner", "esbuild hithliner"],
82        "assets.deploy": [
83          "tailwind hithliner --minify",
84          "esbuild hithliner --minify",
85          "phx.digest"
86        ]
87      ]
88    end
89  end