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

Builds Issho's browser client into `priv/static`.

    $ mix issho.build

This task is for work on Issho itself. An application that uses Issho
gets the built files in the Hex package and does not run this task: in
any project but Issho, 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 `:issho_esm` and
     `:issho_cjs` profiles.

After the task, `priv/static` holds exactly the two bundles, 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*
