改进撇号片段

Improving apostrophe-pieces

我想创建一个模块来改进现有的撇号片段以用于翻译片段。 所以我制作了我的模块并添加了一个 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();
      };
  }
};

但是初始函数总是被调用,而不是我的。我的方法有什么问题?

有两个问题。首先,将 aliasimprove 组合没有意义。 improve 的目的是隐式子类化 apostrophe-pieces 以便从撇号部分派生的所有模块都能得到您的更改。 alias 的目的是给模块一个新名称,这不是您想要做的。

其次,improve 确实适用于 npm 模块,目前不适用于 "project level" 代码。您没有在此处指定,但我假设您是在 lib/modules/apostrophe-translated-pieces.

中的项目级别执行此操作

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

improve 的目的是让您在将发布并与他人共享的 npm 模块中实现相同的技巧,即使它不能(或不应该)具有相同的名称作为我们的模块之一。该问题不会出现在项目级别。

最后...您应该查看 apostrophe-workflow 模块。新的 2.x 版本的 apostrophe-workflow 也涵盖了 localization/translation,而且做得非常彻底。因此,根据您的需要编写自己的翻译实现可能没有意义。