
How could you use SASS with Phoenix 1.7, Bulma and esbuild?
Start with your mix.exs to make sure assets get built in priv/static/assets:
  defp aliases do
    [
      "ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"],
      "ecto.reset": ["ecto.drop", "ecto.setup"],
      test: ["ecto.create --quiet", "ecto.migrate", "start_stripe_mock", "test"],
      "assets.deploy": [
        "esbuild default --minify",
        "sass default --no-source-map --style=compressed",
        "phx.digest"
        ]
    ]
  end
This is assuming that your CSS and JS are built separately with dart_sass and esbuild respectively.
The question becomes, what do I need to do to make sure CSS assets are built when I deploy? (or make sure they get deployed with the app?)
One example that helps is Gigalixir’s Magenta example.
The key in the above example is the assets/package.json file.  It calls mix assets deploy when npm deploy is called.
So your .json would look like:
/assets/package.json: 
{
    "scripts": {
      "deploy": "cd .. && mix assets.deploy && rm -f _build/esbuild"
    }
}
and mix.exs to build the sass assets:
  defp aliases do
    [
      ...
      "assets.deploy": [
        "esbuild default --minify",
        "sass default --no-source-map --style=compressed",
        "phx.digest"
        ]
    ]
  end
As always, if you hit any issues, we’re one email away to help. Just write us at Gigalixir Elixir Support.