# `mix masu.build`
[🔗](https://github.com/hattoriai/masu/blob/v0.1.0/lib/mix/tasks/masu.build.ex#L1)

Builds the Masu grid into `priv/static`.

    $ mix masu.build

This task is for work on Masu itself. An application that uses Masu
gets the built files in the Hex package and does not run this task: in
any project but Masu, the task stops with an error before it changes
a file.

The task:

  1. Runs `npm ci` in `assets/` when `assets/node_modules` is missing or
     `assets/package-lock.json` changed since the last install.
  2. Empties `priv/static`, so that it holds only the files of this
     build.
  3. Runs esbuild (the `esbuild` Mix package) with the `:masu_esm` and
     `:masu_cjs` profiles.
  4. Copies `assets/css/masu.css` and `assets/css/masu-sumi.css` to
     `priv/static/`.

After the task, `priv/static` holds exactly these four files, which are
the files of the Hex package.

It needs `npm` on the path and the `:esbuild` dependency, which is
available in the `:dev` environment.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
