Я вырос в Laravel, поэтому, когда я начал разрабатывать проект на Adonis JS, мне не хватало их самого полезного инструмента внешнего интерфейса: Laravel Mix.

Итак, я работал над настройкой инструмента во фреймворке, затем я вспомнил полезную функцию mix, с этой функцией вы можете использовать хешированную версию своих активов, потому что вы знаете, что если вы всегда обслуживаете сервер с тем же именем файла, браузер будет обслуживать старая версия, которая была сохранена, это может увеличить скорость вашего сайта, но вам нужно всегда обслуживать последнюю версию ваших ресурсов. Чтобы избежать этого, разработчики могут добавить хеш или создать функцию с нуля, но если в Laravel есть функция, почему бы не использовать ту же логику в Adonis JS?

Цель - создать глобальную функцию для представлений. Мы можем добавить его в start/hooks.js.

const { hooks } = require('@adonisjs/ignitor');
// Import the mix manifest file
const manifest = require('../public/mix-manifest');

hooks.after.providersBooted(() => {
  const View = use('View');

  // Creating the mix function in edge views
  View.global('mix', function (asset) {
    if (!manifest[`/${asset}`]) {
      return '404-asset-not-found';
    }

    return manifest[`/${asset}`];
  })
});

Затем перезапустите сервер AdonisJS, и вы сможете использовать его в своих представлениях двумя разными способами: с помощью функций AdonisJS или Html.

{{ css(mix('css/your-styles.css')) }}
<link href="{{ mix('css/your-styles.css') }}" rel="stylesheet">

Вот суть, если хотите.