Nuxt: Заглядывая в будущее
Обзор 2023 года - Себастьян
В январе 2023 года Дэниел выложил Nuxt: видение на 2023 год. Мы достигли большинства целей, которые ставили перед собой. Некоторые из них не достигнуты, и мы займемся ими в этом году!
Это был продуктивный год, и команда выпустила 9 минорных релизов: от v3.1 до v3.9.
За первые 365 дней Nuxt 3 достиг следующих вех:
- 49,5 тысяч звезд на GitHub (добавьте свою 😊)
- 27 миллионов скачиваний на npm
- 612 контрибьютеров в репозитории nuxt
- создано 184 модуля с помощью 142 мейнтейнеров
- 2,423 закрытых issue
- 1,728 вмерженных пул реквестов
- 26,300 человек в Discord
В конце октября количество загрузок Nuxt 3 превысило количество загрузок Nuxt 2 🚀.
В том же месяце мы выпустили Nuxt Image 1.0 с поддержкой Nuxt 3 и новыми функциями для обеспечения производительности вашего сайта при использовании изображений. Теперь Nuxt автоматически устанавливает его, как только вы начинаете использовать компонент <NuxtImg>
или <NuxtPicture>
.
Мы выпустили Nuxt DevTools, повысив уровень опыта разработчика, который мы можем ожидать от веб-фреймворка. Я рад видеть, что мы вдохновили другие фреймворки на аналогичный подход: Vue DevTools, Next DevTools, Remix DevTools, Vite Plugin DevTools, Astro Dev Toolbar и другие.
После долгих месяцев создания нашей UI-библиотеки внутри компании, Бенджамин Канак выложил в открытый доступ Nuxt UI, чтобы вы могли быстрее создавать сайты с помощью легко настраиваемых компонентов, созданных с помощью TailwindCSS.
В Nuxt Content вышло 10 минорных релизов с различными улучшениями: от производительности до синтаксиса MDC. Мы продолжаем работу над улучшением поддержки edge rendering в будущем. В то же время команда NuxtLabs работает над Nuxt Studio, чтобы позволить пользователям редактировать Markdown-файлы с помощью Notion-подобного редактора, сохраняя контент внутри вашего git-репозитория.
С нетерпением жду 2024 года – Дэниел
Мы уже далеко в 2024 году, и это обновление определенно назрело!
Вот несколько мыслей о том, в каком направлении я буду стремиться вести Nuxt в течение следующего года.
Постоянное развитие и переосмысление
Я бы хотел, чтобы мы продолжали адаптировать наши лучшие практики к меняющимся потребностям экосистемы, расширяли границы того, каким может быть хороший DX, и улучшали Nuxt.
Я очень доволен тем, что мы сейчас предлагаем в Nuxt. Но я никогда не хотел бы останавливаться на достигнутом. Мы должны продолжать использовать новые возможности, которые появляются по мере развития веб-платформы. Мы взяли на себя обязательства по Совместимости с базовым уровнем на будущее (и участвуем в обсуждении этого вопроса с Общественной группой W3C WebDX).
У нас есть несколько стратегий, которые позволят нам сделать это, но при этом мы ставим во главу угла стабильность для наших существующих пользователей и признаем масштабы экосистемы Nuxt.
- Обычно мы следуем схеме введения модуля или экспериментальной функции, которая может быть отключена при тестировании, пока мы собираем отзывы и подтверждаем направление и API новых функций.
- Мы придерживаемся модели ecosystem-ci для проверки того, что наши изменения кода в Nuxt не сломают непреднамеренно завязанные на Nuxt проекты. Если вы поддерживаете хорошо протестированный модуль или библиотеку, которая зависит от Nuxt, я буду рад PR, добавляющему ваш проект в nuxt/ecosystem-ci.
- Мы планируем выпустить pull-based тест, который позволит вам настроить ваш CI на тестирование себя на последней "ночной" версии Nuxt, чтобы обеспечить раннюю обратную связь с новыми релизами Nuxt, а не сталкиваться с проблемой при обновлении.
- Наконец, мы перешли на толковый подход к обновлению существующих проектов. Когда мы обнаруживаем изменения или улучшения, которые можно распространить на всю экосистему, мы будем проактивно отправлять PR в модули Nuxt (и, в меньшей степени, в другие проекты с открытым исходным кодом, использующие Nuxt).
Я надеюсь, что это позволит нам продолжать внедрять инновации и экспериментировать с новыми функциями без ущерба для стабильности и поддерживаемости.
В частности, смотри за активной разработкой по следующим направлениям:
- ✅ nuxt/fonts - работает, включая версию v1.0.0
- ✅ nuxt/eslint - работает, включая версию v1.0.0
- 🔥 nuxt/scripts - скоро выйдет в релиз
- 🚧 nuxt/a11y - скоро!
- 🚧 nuxt/auth - скоро!
- 🚧 nuxt/hints - скоро!
Устойчивый open source
Я хочу, чтобы Nuxt оставался независимым, управляемым сообществом фреймворком в долгосрочной перспективе.
Я очень рад видеть успешные бизнесы, основанные на Nuxt, и инициативы, возникающие вокруг Nuxt, которые становятся спонсорами или иным образом возвращаются к ядру их приложения, обеспечивая непрерывное развитие Nuxt.
Очевидно, что NuxtLabs является ярким примером этого. Пуйя Парса, Энтони Фу и я имеем возможность работать полный рабочий день над открытым исходным кодом благодаря их платным сервисам вокруг Nuxt: Nuxt UI Pro, Nuxt Experts, Nuxt Studio и NuxtHub (скоро). Они также спонсируют членов сообщества из Vue, Vite, UnJS и Nuxt.
Для меня сохранение независимости и устойчивости Nuxt в будущем требует активной и растущей команды и сообщества. В ближайшие недели я объявлю о расширении «команды Nuxt» наряду с основной командой. Это признание неустанной работы многих людей, чей вклад уже делает Nuxt тем, чем он является.
Мне также хотелось бы, чтобы в предстоящие годы больше таких членов команды или более широкое сообщество спонсировалось для работы в экосистеме Nuxt. Если ваша компания пользуется преимуществами Nuxt, пожалуйста, рассмотрите возможность спонсирования некоторых разработчиков, работающих над Nuxt.
Дружеское сотрудничество
С самого начала работы над Nuxt 3 мы стремились извлечь из него утилиты, библиотеки и даже фреймворки, которыми мы пользуемся, чтобы они могли принести пользу гораздо более широкой аудитории.
Это, конечно же, истоки UnJS, который продолжает процветать под руководством ключевого члена основной команды Nuxt - Пуйя Парсы.
Мы хотели бы сохранить эту атмосферу дружеского сотрудничества. Хотя создание вещей своими силами или удержание их при себе может быть «успехом», у меня нет времени на "игры с нулевой суммой". Мы продвинемся дальше, и как фреймворк, и как веб-сообщество, если будем строить вместе.
Кроме того, одной из наших основных ценностей является независимость от платформы (наряду с глубокой интеграцией платформ). Мы поддерживаем 90 с лишним поставщиков услуг по развертыванию, тестированию, историям, KV и кэшу, базам данных, CDN для изображений и хостам шрифтов. Такая широта экосистемы приносит богатые плоды и дает людям возможность выбирать, каких провайдеров использовать, исходя из их ценности. Но это также означает, что мы зависим от нашего сообщества, которое использует этих различных провайдеров, чтобы помочь нам поддерживать эти интеграции в актуальном состоянии.
Nuxt никуда не денется, но мы надеемся, что работа, которую мы делаем совместно, будет продолжаться еще долго после нас.
Гостеприимное сообщество
Несмотря на то, что легко сосредоточиться на техническом совершенстве или качестве опыта разработчиков, меня больше вдохновляет продолжающийся рост экосистемы Nuxt как гостеприимного и дружелюбного сообщества.
Я невероятно благодарен за добрый тон, который преобладает в нашем сообществе Discord, в Twitter и на GitHub.
А как насчет Nuxt 4?
JavaScript-пространство известно тем, что каждую неделю выпускается новый фреймворк, что означает естественный цикл ажиотажа.
Но мы не стремимся к шумихе, продолжая разработку Nuxt, и именно поэтому мы взяли на себя обязательства по регулярному выпуску релизов:
- major-версия фреймворка выходит каждый год
- minor-версии выходят каждый месяц или около того
- path-версии выходят каждую неделю или около того
Вы можете ожидать, что ломающие изменения будут отправлены в крупных релизах, а фичи - в наших минорных релизах. Это означает, что мы не задерживаем функции для Nuxt 4; мы будем поставлять их настолько регулярно, насколько это возможно в нашем 6-недельном цикле минорных релизов.
Наша цель состоит в том, чтобы Nuxt 4 стал возможностью для вдумчивых изменений с понятным путем миграции (в идеале с автоматизированными процессами) или возможностью вернуться к прежнему поведению.
Мы, как команда, определенно извлекли уроки из перехода от Nuxt 2 к 3, и я вижу Nuxt 4 как возможность для нас доказать, что крупные релизы могут быть хорошим опытом для пользователей.
Вы можете ознакомиться с планом изменений на нашем роадмапе или в проблемах, которые мы пометили для v4. Отзывы и пожелания, как всегда, очень приветствуются!
Расписание
Наш roadmap для Nuxt 4 немного сложен, поскольку мы также планируем крупные релизы для всей экосистемы UnJS.
Грубо говоря, мы планируем выпустить еще один минорный релиз для Nuxt v3 и Nitro v2, а затем начать серию крупных релизов по всей экосистеме пакетов UnJS - кульминацией которой станет Nuxt v4.
Мы планируем выпустить Nuxt v4 не позднее 14 июня (хотя, конечно, это зависит от того, будет ли достаточно времени после выхода Nitro для надлежащего тестирования в сообществе, так что имейте в виду, что это не точная дата).
Постоянная поддержка
После выхода Nuxt v4 мы обеспечим шесть месяцев постоянной поддержки и исправления ошибок для Nuxt v3, что, как мы ожидаем, будет более чем достаточно для перехода на v4, учитывая нашу цель - мягкий путь обновления.
Мы надеемся, что вы так же, как и мы, рады предстоящему релизу Nuxt v4! 🎉
Наконец, спасибо вам за доверие и поддержку, которые вы оказывали нам, создавая Nuxt. Я знаю, что говорю за всю команду, когда говорю - это такая привилегия делать это вместе со всеми в сообществе Nuxt! ❤️
Дэниел (от имени всей команды Nuxt)