改善撇号

时间:2017-09-29 20:07:22

标签: apostrophe apostrophe-cms

我想创建一个模块来改进现有的撇号,以便翻译片段。 所以我创建了我的模块并添加了一个index.js文件。

module.exports = {

  improve: 'apostrophe-pieces',
  alias:'apostrophe-translated-pieces',
  construct: function(self, options) {
      self.afterList = function(req, results, callback) {
        console.log('my function');  
        return callback();
      };
  }
};

但是最初的功能总是被调用,而不是我的。我的做法有什么问题?

1 个答案:

答案 0 :(得分:2)

有两个问题。首先,将aliasimprove结合起来没有意义。 improve的目的是隐式地继承apostrophe-pieces,以便从撇号中派生的所有模块都能得到您的更改。 alias的目的是为模块提供一个新名称,而不是您想要做的。

其次,improve真正适用于npm模块,目前不适用于项目级别"码。您没有在此指定,但我假设您在项目级别lib/modules/apostrophe-translated-pieces中执行此操作。

那么你如何在项目层面做到这一点?它实际上更简单:您只需在项目中创建lib/modules/apostrophe-pieces/index.js并将代码放在那里。如果为作为Apostrophe核心一部分的模块提供实现,它将自动加载为隐式子类,完全按照您的希望进行操作。您不需要improve关键字(或alias)。

improve的目的是让你在npm模块中实现相同的技巧,即使它不能(也不应该)拥有与我们的模块名称相同。这个问题并没有出现在项目层面。

最后......你应该看看apostrophe-workflow模块。新的2.x版本的撇号工作流程也涵盖了本地化/翻译,并且它非常彻底。因此,根据您的需要编写自己的翻译实现可能没有意义。