mix tayori.build (Tayori v0.1.0)

Copy Markdown View Source

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.