Переопределение шаблонов в пользовательских npm-модулях в Apostrophe CMS - PullRequest
0 голосов
/ 14 января 2019

Чтобы иметь общую настройку в большинстве моих проектов Apostrophe, я планирую создать несколько пользовательских npm-модулей для их объединения и добавления в мои проекты. Некоторые из функций, которые я хотел бы сделать в них, помимо добавления виджетов и функций бэкенда, - это редактирование настроек официальных модулей апострофов (например, установка типов страниц по умолчанию для apostrophe-pages) и переопределение блоков и / или шаблонов nunjuck.

Обе вещи могут быть легко перезаписаны в конфигурации уровня проекта с неявным механизмом субклассирования Apostrophe, поэтому моя цель совместного использования общей базовой настройки для различных проектов может быть достигнута с помощью пользовательского шаблона, хотя я потеряю возможность обновления своего по умолчанию, выпуская новые версии моих узловых модулей.

В общем, я думал в иерархии зависимостей в стиле Maven, как это:

Apostrophe npm modules <- custom npm modules <- project modules

Придя из CMS на основе Java и Maven, я понимаю, что мне нужно будет изменить свой образ мышления во многих вещах, поэтому: возможно ли то, что я пытаюсь сделать, и имеет ли это смысл в мире апострофов? Каким будет «Путь Апостроф», чтобы достичь чего-то подобного? Нужно ли создавать собственный модуль npm с опцией moog improve для каждого модуля, который я хочу расширить?

Заранее спасибо.

1 Ответ

0 голосов
/ 15 января 2019

Даже в каталоге npm_modules апостроф сначала будет создавать базовые модули, а затем модули, расширяющие эти модули, то есть ваши пользовательские модули npm будут следовать той же цепочке наследования, что и официальные модули апострофов. Вы можете переопределить их так же, как и любой другой модуль апострофа.

meta module (apostrophe-pieces) > custom-pieces (piece extension, custom npm module) > custom-pieces (project-level overrides)

Вы бы просто выборочно переопределяли файлы и методы в lib/modules/ так же, как вы переопределяли бы части apostrophe-blog, например lib/modules/custom-pieces/views/widget.html

Правильно ли я понимаю, как вы хотите переопределить вещи?

...