Переход на современные стандарты
Ключевое изменение в AdonisJS v6 – полная поддержка современных стандартов JavaScript: ECMAScript Modules (ESM) и TypeScript. Это обеспечивает совместимость с последними версиями пакетов и повышает безопасность благодаря доступу к актуальным исправлениям уязвимостей. Приложения AdonisJS v6 теперь по умолчанию используют TypeScript и ESM, однако разработчики по-прежнему могут устанавливать и применять пакеты, написанные в CommonJS.
Упрощение работы с TypeScript
В AdonisJS v6 больше не требуются хуки компилятора TypeScript, знакомые пользователям v5. Теперь фреймворк позволяет использовать обычные JavaScript-импорты без необходимости задействовать официальный API компилятора. Это упрощает код и даёт разработчикам свободу выбора других инструментов JIT-компиляции, таких как ESBuild или SWC.
Повышенная безопасность типов
AdonisJS v6 улучшает проверку типов за счёт изменений в маршрутах, контроллерах, ссылках на middleware, файлах AdonisRC и обработчиках событий. Вместо магических строк используются прямые импорты в маршрутах и контроллерах, что повышает безопасность типов и читаемость кода. Ссылки на middleware и файлы AdonisRC теперь управляются через TypeScript, улучшая понимание кода и удобство разработки.
Класс-базированные события
Ещё одно нововведение – поддержка класс-базированных событий. Разработчики могут определять события как классы, инкапсулируя идентификатор события и данные в единой структуре. Такой подход улучшает проверку типов и обеспечивает более чистое управление событиями в приложении.
Vite – новый официальный бандлер
AdonisJS v6 отказывается от Webpack Encore в пользу Vite как основного инструмента для сборки фронтенд-ресурсов. Новая система генерации проектов и API codemods позволяют более эффективно настраивать пакеты и генерировать код. Также представлена VineJS – новая официальная библиотека валидации. VineJS обещает более высокую скорость, расширенный набор функций и удобный API по сравнению с предыдущим модулем валидации.
Улучшенная документация
В релизе улучшена документация AdonisJS, которая теперь охватывает ранее не описанные темы, такие как контейнер зависимостей (IoC) и поставщики сервисов. Фреймворк стремится предоставить разработчикам исчерпывающие руководства и справочники для облегчения обучения.
Планы на будущее
Команда AdonisJS планирует сосредоточиться на стабилизации фреймворка, исправлении ошибок и улучшении руководства по миграции. Ожидается, что в ближайшие недели несколько пакетов, включая Drive, Limiter, Lucid Slugify, Attachment Lite, привязку модели к маршруту и проверки работоспособности (Health checks), будут перенесены в AdonisJS v6.