Использование последней версии React (18/19) с WordPress Gutenberg и headless WP — конфликты зависимостей и стратегия сбJavascript

Форум по Javascript
Ответить
Anonymous
 Использование последней версии React (18/19) с WordPress Gutenberg и headless WP — конфликты зависимостей и стратегия сб

Сообщение Anonymous »

создание гибридной установки WordPress, в которой:
  • WordPress (последняя версия) используется в качестве CMS
  • Gutenberg включен
  • Пользовательский интерфейс React использует WP REST API
  • Используются современные инструменты (Vite / Webpack / Node 20+)
Поскольку Gutenberg уже поставляется с собственной зависимостью React через @wordpress/element, я пытаюсь понять правильный способ интеграции последней версии React в пользовательскую тему/плагин без возникновения конфликтов.
Пример:
import { createRoot } from "react-dom/client";
import App из "./App";
constContainer = document.getElementById("app");
const root = createRoot(container);
root.render();
Но WordPress уже загружает React через пакеты Gutenberg:
@wordpress/element
@wordpress/components

Это вызывает несколько проблем:
  • Возможны дублированные экземпляры React
  • Дублирование размера пакета
  • Несогласованность привязок/состояний
  • Время сборки и время выполнения разрешение зависимостей
  • Следует ли мне полагаться на @wordpress/element вместо прямой установки React?
  • Безопасно ли использовать функции React 18/19 (например, createRoot) внутри плагинов/тем WordPress?
  • Какой подход рекомендуется в 2025 году для:
    • React внутри блоков Gutenberg
    • React внутри плагинов администратора
    • React frontend в headless WP
  • Следует пометить React как внешний зависимость в Webpack/Vite при использовании внутри WordPress?
  • Существуют ли ограничения блокировки версий между ядром WordPress и React?
{
"react": "^18.3.0",
"react-dom": "^18.3.0",
"@wordpress/element": "^5.x"
}


Подробнее здесь: https://stackoverflow.com/questions/798 ... dependency
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»