Это проблема, с которой я часто сталкиваюсь, и это заставляет меня задуматься, правильно ли я подхожу к Pug mixins. Я проверил проблемы GitHub для связанных разговоров.
С учетом этих файлов:
// main.pug
extends base
block content
include message // or the definition itself
+message('Outer')
block inner
// page.pug
extends main
block inner
+message('Inner')
Мопс даст блоку inner
доступ к миксуину message
. Это согласуется с другими правилами области видимости, такими как правила, касающиеся переменных.
Я бы хотел явно включить миксины в мои блоки и страницы, чтобы они не «знали» о объявлениях в блоках, которые они расширяют.
Мои чувства в стороне, Pug игнорирует избыточные объявления, означающие, что если вы определите миксин, который разделяет имя с миксином из расширенного блока, Pug спокойно использует существующий миксин. Вы должны знать обо всех миксинах из всех блоков, которые вы расширяете. РЕДАКТИРОВАТЬ: Я, должно быть, неправильно это запомнил. При дальнейшем тестировании более поздний миксин переопределяет исходный.
Это так, как есть, или я должен использовать миксины по-другому?