Ich möchte ein "Kern" -Paket erstellen und "Modul/Plugin" -Pakete ähnlich wie accounts-facebook
verwendet accounts-base
in Meteor.Meteor-Paketbibliothek erstellen?
Hier ist, was ich habe momentan aber es funktioniert nicht:
packages/Projekt: Module-core/package.js:
Package.describe({
name: 'project:modules-core',
summary: 'Core package for Modules.',
version: '1.0.0'
});
Package.onUse(function (api) {
api.versionsFrom('[email protected]');
api.addFiles('lib/core.js', ['client', 'server']);
if (api.export) {
api.export('HBModule');
}
});
packages/Projekt: Module-core/lib/core.js:
HBModule = (function() {
var moduleName = "";
var getShareCount = (function (url) {
});
var register = (function (name) {
HBModule[name] = name;
});
}());
packages/Projekt: facebook/package.j s:
Package.describe({
name: 'project:facebook',
summary: 'Facebook Module.',
version: '1.0.0'
});
Package.onUse(function(api) {
api.versionsFrom('[email protected]');
api.use('project:modules-core', ['client', 'server']);
api.imply('project:modules-core', ['client', 'server']);
api.addFiles('lib/facebook.js', ['client', 'server']);
});
packages/Projekt: facebook/lib/facebook.js:
Facebook = (function() {
var moduleName = "Facebook";
var getShareCount = (function (url) {
return 22;
});
}());
HBModule.register('facebook');
Und damit ich ein TypeError: Cannot read property 'register' of undefined
Fehler.
Was mache ich falsch?
Danke!
Das ist genial ! Vielen Dank! Noch eine Frage: Wie würde ich vorgehen, wenn die Module Standardfunktionen verwenden sollen, wenn eine nicht eingestellt ist? Wenn ich zum Beispiel keine "Facebook.getShareCount" -Funktion erstellt habe, wird stattdessen die Funktion "HBModule.getShareCount" verwendet, wenn die erste Funktion aufgerufen wird. –
Danke! Es gibt eine Vielzahl von Möglichkeiten, dies zu tun; Ich würde empfehlen, "Klassen" (prototypische Vererbung) zu verwenden, da ich denke, dass es die Lesbarkeit verbessert. Ich weiß nicht, auf welcher Version von Meteor du stehst, also werde ich das Beispiel für Meteor 1.3+ schreiben: (Du kannst das Äquivalent in früheren Versionen von Meteor machen, aber es wird etwas anders geschrieben). https://gist.github.com/nathantreid/8ef9e734d52b179bee12123ef81b3065 –
Oh Mann, das ist perfekt. Ich danke dir sehr! –