Я пытаюсь убрать предупреждение:
[PLUGIN discourse-layouts] Чтобы предотвратить ошибки в тестах, добавьте ключ `pluginId` в вызов `modifyClass`. Это обеспечит применение изменения только один раз.
Однако в случае плагина Layouts в метод api.modifyClass() передается миксин под названием Sidebars, как показано ниже:
api.modifyClass(controllerClass, Sidebars) (См. код)
Я перепробовал множество вариантов, включая добавление pluginId в свойство миксина:
export default Mixin.create({
pluginId: 'discourse-layouts',
router: service(),
path: alias("router._router.currentPath"),
...
Однако предупреждение продолжает появляться.
Единственный способ, которым мне удалось подавить предупреждение, — использование следующего кода вместо modifyClass():
const klass = api._resolveClass(controllerClass, {});
klass.class.reopen(Sidebars);
Однако я не считаю это лучшим решением, поскольку по сути я пропускаю проверку, которая помогает предотвратить многократное применение modifyClass.
Есть ли у кого-нибудь советы или мысли о том, как добавить pluginId в api.modifyClass(), когда используется миксин, и успешно подавить это предупреждение?