Don't miss Vue.js Amsterdam in March 2025! Save 10% with code NUXT.
Релиз·  

Nuxt 3.14

Вышел Nuxt 3.14 - с новым билдером rspack, директорией shared и улучшениями производительности!

За кулисами ведется активная работа по подготовке к выпуску Nuxt v4 (особенно на стороне unjs в связи с подготовкой к Nitro v3!)

⚡️ Более быстрый запуск за счет jiti

Загрузка файла конфигурации Nuxt, а также модулей и другого кода во время сборки теперь осуществляется с помощью jiti v2. Вы можете узнать больше в информации о релизе jiti v2, но одна из самых важных частей — это нативный импорт модулей esm (где это возможно), что должно означать более быстрый запуск ✨

📂 Директория shared для кода и типов, совместно используемых клиентом/сервером

Вы никогда не должны импортировать код приложения Vue в код Nitro (или наоборот). Но это приводит к возникновению проблем, когда дело доходит до совместного использования типов или утилит, которые не полагаются на контексты Nitro/Vue.

Для этого теперь есть новая директория shared/ (#28682). Вы не можете импортировать код Vue или Nitro в файлы в этой директории, но из нее производится автоматический импорт (если вы используете compatibilityVersion: 4), который вы можете использовать во всем остальном приложении.

При необходимости вы можете использовать новый псевдоним #shared, который указывает на эту директорию.

Директория shared находится рядом с server/. (Если вы используете compatibilityVersion: 4, это означает, что она не находится внутри app/.)

🦀 Билдер rspack

Мы рады объявить о новом билдере первого класса для Nuxt для rspack. Он все еще экспериментальный, но мы переработали внутреннюю виртуальную файловую систему Nuxt на использование unplugin, чтобы сделать это возможным.

Дайте нам знать, если вам понравилось, и не стесняйтесь сообщать о любых проблемах, с которыми вы столкнулись.

👉 Чтобы попробовать, вы можете использовать этот стартер или просто установить @nuxt/rspack-builder и указать builder: 'rspack' в файле конфигурации Nuxt.

✨ Новые композаблы

Теперь есть новые композаблы useResponseHeader и useRuntimeHook (#27131 и #29741).

🔧 Новые утилиты модуля

Теперь у нас есть новая утилита addServerTemplate (#29320) для добавления виртуальных файлов для доступа внутри роутов Nitro в рантайме.

🚧 Изменения v4

Мы объединили некоторые изменения, которые вступают в силу только с compatibilityVersion: 4, но на которые вы можете согласиться раньше.

  1. Ранее, если у вас был компонент типа ~/components/App/Header.vue, он был бы виден в инструментах разработчика как <Header>. Начиная с версии 4, он будет виден как <AppHeader>, но это является опцией, чтобы избежать поломки <KeepAlive>, который вы могли реализовать. (#28745).
  2. Nuxt сканирует метаданные страниц из файлов перед вызовом pages:extend. Но это привело к некоторому запутанному поведению, так как страницы, добавленные в этот момент, в конечном итоге не учитывают свои метаданные. Поэтому теперь мы не сканируем метаданные перед вызовом pages:extend. Вместо этого у нас есть новый хук pages:resolved, который вызывается после pages:extend, после того, как все страницы были дополнены своими метаданными. Я бы рекомендовал включить это, установив experimental.scanPageMeta на after-resolve, так как это решает ряд ошибок.

🗺️ Дорожная карта к v3.15

Мы не успели к v3.14, но в следующем минорном релизе вы можете ожидать (помимо прочего):

  • автоматически импортированные директивы из модулей (#29203)
  • 'изолированные' рендеры страниц (#29366)
  • отложенная гидратация (#26468)

✅ Обновление

Как обычно, наша рекомендация по обновлению — запустить:

npx nuxi@latest upgrade --force

Это также обновит ваш lockfile и обеспечит получение обновлений от других зависимостей, от которых зависит Nuxt, особенно в экосистеме unjs.

Полная информация о релизе

Ознакомьтесь с полной информацией о релизе Nuxt v3.14.0.

Огромное спасибо всем, кто принимал участие в этом релизе — вы те, кто делает Nuxt возможным. ❤️

Не стесняйтесь сообщать нам о любых отзывах или проблемах! 🙏

← Вернуться к блогу