Packages

Animation library for Phoenix LiveView — declarative CSS animations via Web Animations API.

Current section

Files

Jump to
enguia lib mix tasks enguia.build.ex
Raw

lib/mix/tasks/enguia.build.ex

defmodule Mix.Tasks.Enguia.Build do
@shortdoc "Builds priv/static/enguia.js from assets/js/enguia/"
@moduledoc """
Bundles the Enguia JavaScript sources into `priv/static/enguia.js`.
$ mix enguia.build
$ mix enguia.build --watch
$ mix enguia.build --minify
"""
use Mix.Task
@impl Mix.Task
def run(args) do
{opts, _, _} = OptionParser.parse(args, switches: [watch: :boolean, minify: :boolean])
script =
cond do
opts[:watch] -> "build:watch"
opts[:minify] -> "build:minified"
true -> "build"
end
Mix.shell().info("Running npm run #{script}...")
case System.cmd("npm", ["run", script], stderr_to_stdout: true) do
{output, 0} ->
Mix.shell().info(output)
Mix.shell().info("Done.")
{output, code} ->
Mix.shell().error(output)
Mix.raise("enguia.build failed with exit code #{code}")
end
end
end