Cover Image for @wordpress/build: Сборка плагинов WordPress по новому

@wordpress/build: Сборка плагинов WordPress по новому

9 апреля 2026

Пакет @wordpress/build — инструмент сборки для плагинов WordPress. Заменяет webpack и Babel на esbuild, автоматически генерирует регистрацию PHP-скриптов на основе package.json и работает без конфигурации.

Контекст и история создания

@wordpress/scripts долгое время был основным инструментом для разработчиков плагинов с предварительно настроенным webpack. С ростом сложности проектов потребовалось более быстрое и простое решение.

В октябре 2025 года Riad Benguella представил концепцию v2 для WordPress Scripts. Вместо гибкости инструмент берёт на себя сложность, упрощая разработку. Так появился @wordpress/build, который уже собирает все 100+ пакетов Gutenberg.

Основные возможности

Сборка на esbuild

@wordpress/build использует движок на базе esbuild (написан на Go). Для крупных проектов вроде Gutenberg полная сборка сократилась с минут до секунд. В режиме wp-build --watch работают инкрементальные пересборки — изменения обрабатываются сразу.

Конвенции вместо конфигов

Инструмент работает по соглашениям. Код размещается в стандартных директориях:

  • packages/ — JavaScript-пакеты. Подкаталог = пакет со своим package.json.
  • routes/ (экспериментально) — маршруты страниц администратора. Подкаталог определяет маршрут с привязкой к странице и URL.
  • blocks/ (предложено) — блоки, обнаруживаемые автоматически.

Файл конфигурации не нужен. Обнаружение зависит от структуры папок, несколько полей в package.json дополняют картину.

Генерация регистрации PHP

@wordpress/build создаёт файлы регистрации для скриптов, модулей и стилей. В файл плагина добавляется одна строка:

require_once plugin_dir_path( __FILE__ ) . 'build/build.php';

Она подключает сгенерированные scripts.php, modules.php и styles.php, которые регистрируют ресурсы. Файлы .asset.php отслеживают зависимости по импортам.

Пространства имён

Пакет встраивает механизм экстернализации импортов @wordpress/*. Конфигурация wpPlugin namespace определяет, как экстернализируются ваши пакеты. Пакет @acme/editor с wpScript: true соберётся как IIFE в window.acme.editor.

Модель работает между плагинами. Можно объявить пространство имён другого плагина внешним — зависимости разрешатся автоматически.

Планы развития

@wordpress/build задуман как движок для @wordpress/scripts, а не полная замена:

  1. Сейчас: автономный пакет внутри Gutenberg.
  2. Далее: @wordpress/scripts перейдёт на @wordpress/build как движок. Команда wp-scripts build сохранится, транспиляция и бандлинг будут использовать wp-build.
  3. В перспективе: webpack и Babel объявят устаревшими в @wordpress/scripts.

Кому использовать сейчас

  • Контрибьюторы Gutenberg. При npm start в репозитории Gutenberg запускается @wordpress/build.
  • Разработчики плагинов с несколькими скриптами или пакетами. Инструмент подходит для большинства архитектур, не только для моно-репозиториев.
  • Разработчики, готовые влиять на инструмент. API ещё формируется — обратная связь сейчас наиболее ценна.
  • Остальные: оставайтесь на @wordpress/scripts. После слияния с @wordpress/build вы получите преимущества без миграции.

Как повлиять на развитие

Дизайн инструмента ещё не фиксирован, ваш опыт может изменить результат:

  • Структура и регистрация блоков плагина (Issue #74542)
  • Опыт настройки вне моно-репозитория
  • Модель экстерналов и пространств имён (Issue #75196)

Видение обсуждается в issue #72032. Если работаете со сборкой в экосистеме WordPress — стоит подключиться.


Оригинал: https://developer.wordpress.org/news/2026/04/wordpress-build-the-next-generation-of-wordpress-plugin-build-tooling/