我想创建一个模块来改进现有的撇号,以便翻译片段。 所以我创建了我的模块并添加了一个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();
};
}
};
但是最初的功能总是被调用,而不是我的。我的做法有什么问题?
答案 0 :(得分:2)
有两个问题。首先,将alias
与improve
结合起来没有意义。 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版本的撇号工作流程也涵盖了本地化/翻译,并且它非常彻底。因此,根据您的需要编写自己的翻译实现可能没有意义。