mix.exs (2878B)
1 defmodule DailyTracker.MixProject do 2 use Mix.Project 3 4 def project do 5 [ 6 app: :daily_tracker, 7 version: "0.1.0", 8 elixir: "~> 1.15", 9 elixirc_paths: elixirc_paths(Mix.env()), 10 start_permanent: Mix.env() == :prod, 11 aliases: aliases(), 12 deps: deps(), 13 compilers: [:phoenix_live_view] ++ Mix.compilers(), 14 listeners: [Phoenix.CodeReloader] 15 ] 16 end 17 18 # Configuration for the OTP application. 19 # 20 # Type `mix help compile.app` for more information. 21 def application do 22 [ 23 mod: {DailyTracker.Application, []}, 24 extra_applications: [:logger, :runtime_tools] 25 ] 26 end 27 28 def cli do 29 [ 30 preferred_envs: [precommit: :test] 31 ] 32 end 33 34 # Specifies which paths to compile per environment. 35 defp elixirc_paths(:test), do: ["lib", "test/support"] 36 defp elixirc_paths(_), do: ["lib"] 37 38 # Specifies your project dependencies. 39 # 40 # Type `mix help deps` for examples and options. 41 defp deps do 42 [ 43 {:bcrypt_elixir, "~> 3.0"}, 44 {:phoenix, "~> 1.8.7"}, 45 {:phoenix_ecto, "~> 4.5"}, 46 {:ecto_sql, "~> 3.13"}, 47 {:postgrex, ">= 0.0.0"}, 48 {:phoenix_html, "~> 4.1"}, 49 {:phoenix_live_reload, "~> 1.2", only: :dev}, 50 {:phoenix_live_view, "~> 1.1.0"}, 51 {:lazy_html, ">= 0.1.0", only: :test}, 52 {:phoenix_live_dashboard, "~> 0.8.3"}, 53 {:esbuild, "~> 0.10", runtime: Mix.env() == :dev}, 54 {:tailwind, "~> 0.3", runtime: Mix.env() == :dev}, 55 {:heroicons, 56 github: "tailwindlabs/heroicons", 57 tag: "v2.2.0", 58 sparse: "optimized", 59 app: false, 60 compile: false, 61 depth: 1}, 62 {:swoosh, "~> 1.16"}, 63 {:gen_smtp, "~> 1.0"}, 64 {:req, "~> 0.5"}, 65 {:telemetry_metrics, "~> 1.0"}, 66 {:telemetry_poller, "~> 1.0"}, 67 {:gettext, "~> 1.0"}, 68 {:jason, "~> 1.2"}, 69 {:dns_cluster, "~> 0.2.0"}, 70 {:bandit, "~> 1.5"} 71 ] 72 end 73 74 # Aliases are shortcuts or tasks specific to the current project. 75 # For example, to install project dependencies and perform other setup tasks, run: 76 # 77 # $ mix setup 78 # 79 # See the documentation for `Mix` for more info on aliases. 80 defp aliases do 81 [ 82 setup: ["deps.get", "ecto.setup", "assets.setup", "assets.build"], 83 "ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"], 84 "ecto.reset": ["ecto.drop", "ecto.setup"], 85 test: ["ecto.create --quiet", "ecto.migrate --quiet", "test"], 86 "assets.setup": ["tailwind.install --if-missing", "esbuild.install --if-missing"], 87 "assets.build": ["compile", "tailwind daily_tracker", "esbuild daily_tracker"], 88 "assets.deploy": [ 89 "tailwind daily_tracker --minify", 90 "esbuild daily_tracker --minify", 91 "phx.digest" 92 ], 93 precommit: ["compile --warnings-as-errors", "deps.unlock --unused", "format", "test"] 94 ] 95 end 96 end