This repository has been archived on 2024-06-16. You can view files and clone it, but cannot push or open issues or pull requests.
mebe/lib/mix/tasks/frontend.build.js.minify.ex
2017-04-04 07:29:47 +03:00

41 lines
879 B
Elixir

defmodule Mix.Tasks.Frontend.Build.Js.Minify do
use MBU.BuildTask
import MebeWeb.FrontendConfs
import MBU.TaskUtils
@shortdoc "Minify built JS files"
@preferred_cli_env :prod
@deps [
"frontend.build.js.bundle"
]
task _ do
in_path = Mix.Tasks.Frontend.Build.Js.Bundle.out_path()
in_file = Path.join([in_path, "app.js"])
out_path = Path.join([dist_path(), "js"])
out_file = Path.join([out_path, "app.js"])
File.mkdir_p!(out_path)
exec(
node_bin("uglifyjs"),
[
"--in-source-map",
Path.join([in_path, "app.js.map"]),
"--source-map",
Path.join([out_path, "app.js.map"]),
"--source-map-url",
"app.js.map",
"--screw-ie8",
"-m",
"-o",
out_file,
"--",
in_file
]
) |> listen()
print_size(out_file, in_file)
end
end