2017-09-29 8 views
0

Ich möchte ein Modul erstellen, das die bestehenden Apostrophe-Stücke für den Zweck der Übersetzungsstücke verbessert. Also mache ich mein Modul und ich füge eine index.js Datei hinzu.Verbesserte Apostrophe-Stücke

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(); 
     }; 
    } 
}; 

Aber die ursprüngliche Funktion wird immer aufgerufen, und nicht meins. Was ist falsch an meinem Ansatz?

Antwort

1

Es gibt zwei Probleme. Erstens ist es nicht sinnvoll, alias mit improve zu kombinieren. Der Zweck von improve ist implizit Unterklasse apostrophe-pieces, so dass alle aus Apostrophe-Stücke abgeleiteten Module Ihre Änderungen erhalten. Der Zweck von alias ist, einem Modul einen neuen Namen zu geben, und das ist nicht das, was Sie versuchen zu tun.

Zweitens, improve ist wirklich für npm-Module gedacht, und arbeitet derzeit nicht in "Projektebene" -Code. Sie geben hier nicht an, aber ich nehme an, dass Sie dies auf Projektebene in lib/modules/apostrophe-translated-pieces tun.

Also wie machst du das auf Projektebene? Es ist eigentlich noch einfacher: Sie erstellen einfach lib/modules/apostrophe-pieces/index.js in Ihrem Projekt und legen Sie Ihren Code dort. Wenn Sie eine Implementierung für ein Modul bereitstellen, das Teil des Apostroph-Kerns ist, wird es automatisch als implizite Unterklasse geladen und tut genau das, was Sie erhoffen. Sie brauchen das Schlüsselwort improve dafür nicht (oder alias für diese Angelegenheit).

Der Zweck von improve ist es, Sie den gleichen Trick in einem NPM-Modul ziehen Sie veröffentlichen und mit anderen teilen, obwohl es nicht den gleichen Namen wie eines unserer Module haben kann (oder sollte) . Dieses Problem tritt nicht auf Projektebene auf.

Endlich ... sollten Sie das apostrophe-workflow Modul heraus überprüfen. Die neue 2.x-Version des Apostroph-Workflows deckt auch die Lokalisierung/Übersetzung sehr gründlich ab. Es kann daher nicht sinnvoll sein, eine eigene Umsetzung der Übersetzung zu schreiben, abhängig von Ihren Bedürfnissen.

Verwandte Themen