41 lines
879 B
Elixir
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
|