Apostrophe CMS中自定义npm-modules中的模板覆盖

时间:2019-01-14 12:06:16

标签: apostrophe-cms

为了使大多数Apostrophe项目具有通用设置,我计划构建一些自定义的npm-modules来捆绑它们并将它们添加到我的项目中。我想在其中执行的某些功能(添加小部件和后端功能而设计的appart)正在编辑官方撇号模块的设置(例如,为apostrophe-pages设置默认页面类型)并覆盖nunjuck块和/或模板

使用Apostrophe的隐式子类化机制可以很容易地在项目级配置上覆盖这两种内容,因此我可以通过自定义样板实现为不同项目共享通用基础设置的目标,尽管我会失去升级我的能力通过发布新版本的节点模块来默认设置。

总而言之,我在考虑这样的Maven样式依赖关系层次结构:

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

从基于Java和Maven的CMS开始,我了解到我将需要在很多事情上改变思维方式,因此:我正在努力做到的事情是可能的吗?在Apostrophe世界中是否有意义?实现这样的目标的“撇号之道”是什么?我需要为要扩展的每个模块创建一个带有moog选项improve的自定义npm模块吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

即使在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中的文件和方法

我是否正确理解了您想要覆盖事物的方式?