2017-09-29 5 views
0

ピースを翻訳するために既存のアポストロフィーピースを改善するモジュールを作成したいと思います。 私は自分のモジュールを作成し、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

2つの問題があります。まず、aliasimproveを組み合わせるのは意味がありません。 improveの目的は暗黙的にapostrophe-piecesをサブクラス化して、アポストロフィー部分から派生したすべてのモジュールが変更を得るようにすることです。 aliasの目的は、モジュールに新しい名前を付けることです。それはあなたがやろうとしていることではありません。

第2に、improveは実際にnpmモジュールを対象としており、現在「プロジェクトレベル」のコードでは機能しません。あなたはここでは指定しませんが、プロジェクトレベルではlib/modules/apostrophe-translated-piecesでこれをやっていると仮定します。

これはどのようにプロジェクトレベルで行うのですか?実際にはさらに簡単です。プロジェクトにlib/modules/apostrophe-pieces/index.jsを作成してそこにコードを置くだけです。 Apostropheコアの一部であるモジュールの実装を提供する場合、暗黙的なサブクラスとして自動的にロードされ、望むものを正確に実行します。そのためにはimproveというキーワード(またはその意味ではalias)は必要ありません。

improveの目的は、私たちのモジュールの1つと同じ名前を持つことができない(またはそうでなければならない)にもかかわらず、他の人と公開して共有するnpmモジュールで同じトリックを引き出すことです。その問題はプロジェクトレベルでは出てこない。

最後に、apostrophe-workflowモジュールをチェックアウトする必要があります。アポストロフィの新しい2.xバージョン - ワークフローはローカリゼーション/翻訳もカバーしており、非常に徹底しています。したがって、ニーズに応じて翻訳の独自の実装を作成することは意味がありません。