Phoenix Support
When deploying a Phoenix application you will typically want to build your assets after the compilation of your application but before packaging it into a Distillery release.
Drop-in Phoenix support¶
You may use the bootleg_phoenix package to automatically compile Phoenix assets when building on remote servers.
mix.exs
def deps do
  [{:distillery, "~> 2.1", runtime: false},
   {:bootleg, "~> 0.8", runtime: false},
   {:bootleg_phoenix, "~> 0.2", runtime: false}]
end
Custom asset compilation¶
You can write a task to run after the :compile task, and compile the assets yourself.
Here we run a few extra commands after compiling the application, but before generating the release.
Remote compiling Phoenix assets with Brunch
task :phx_digest do
  remote :build, cd: "assets" do
    "npm install"
    "./node_modules/brunch/bin/brunch b -p"
  end
  remote :build do
    "MIX_ENV=prod mix phx.digest"
  end
end
after_task :compile, :phx_digest
Remote compiling Phoenix assets with Webpack
task :phx_digest do
  remote :build, cd: "assets" do
    "npm install"
    # npm >= 5.2.0:
    "npx webpack -p"
    # otherwise:
    # "./node_modules/.bin/webpack --mode production"
  end
  remote :build do
    "MIX_ENV=prod mix phx.digest"
  end
end
after_task :compile, :phx_digest