24 января 2024 года состоялся релиз фреймворка AdonisJS v6 с поддержкой TypeScript и ESM (ECMAScript Modules) из коробки. Предыдущая версия проекта вышла летом 2020 года. Исходный код AdonisJS выложен на GitHub.
«Мы затронули почти каждую часть фреймворка, сгладив множество неровностей, исправив некоторые давно назревшие проблемы и переписав некоторые пакеты с нуля. Да, вы по-прежнему можете устанавливать и использовать пакеты, написанные на CJS (CommonJS), поскольку ESM это позволяет», — пояснили разработчики AdonisJS.
Ещё не все официальные пакеты (включая Drive, Limiter, Attachment lite, Lucid Slugify, Route model binding, Health checks) и часть пакетов от сообщества проверены и полностью совместимы с v6. Этот процесс может занять ещё несколько недель, поскольку команда AdonisJS и авторы других пакетов уделяем время тому, чтобы сделать свои пакеты совместимыми с версией 6 проекта.
AdonisJS это Laravel-подобный фреймворк на NodeJS. Команда проекта открыла доступ к инструкцию по обновлению и сайту по миграции на новую версию, чтобы разработчики могли увидеть полный список критических изменений между v5 и v6.
По поводу переезда на ЕСМ в AdonisJS пояснили, что ESM и CJS являются темой споров среди многих разработчиков JavaScript. Но они не будут обсуждать достоинства и недостатки того или другого проекта.
«Мы выбрали ESM, потому что это часть спецификации. Да, CJS может существовать во всей этой вселенной, но тот факт, что проект, использующий CJS, не может легко импортировать модули ESM, является для нас достаточно большой проблемой. Многие плодовитые авторы (на которых мы полагаемся) уже начали переводить свои пакеты на ESM. В результате, если мы сохраним исходный код AdonisJS в CJS, мы не сможем использовать последние версии их пакетов, которые также могут содержать несколько исправлений безопасности. Начиная с версии 6, каждое новое приложение AdonisJS будет использовать TypeScript и ESM», — добавили разработчики AdonisJS.
Источник: habr.com