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

Builds the bundles and style sheets of Tayori into `priv/static`.

    $ mix tayori.build

This task is for work on Tayori itself. An application that uses Tayori
gets the built files in the Hex package and does not run this task: in
any project but Tayori, 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 `:tayori_esm` and
     `:tayori_cjs` profiles (the news in the app) and `:tayori_admin`
     (the admin, with Phoenix, LiveView, Kotoba and Koyomi from `deps/`).
  4. Copies `assets/css/tayori.css`, `assets/css/tayori-sumi.css` and
     `assets/css/tayori-admin.css` to `priv/static/`, with the Sumi fonts
     (`assets/css/sumi-fonts.css`) in place of the marker of
     `tayori-sumi.css`.

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