0
我想創建一個「核心」軟件包和「模塊/插件」包,很像accounts-facebook
在流星中使用accounts-base
。創建流星包庫?
這裏是我現在,但它不工作:
包/項目:模塊核心/ 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');
}
});
包/項目:模塊核心/ lib中/ core.js:
HBModule = (function() {
var moduleName = "";
var getShareCount = (function (url) {
});
var register = (function (name) {
HBModule[name] = name;
});
}());
包/項目:Facebook的/ package.j小號:
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']);
});
包/項目:Facebook的/ lib目錄/ facebook.js:
Facebook = (function() {
var moduleName = "Facebook";
var getShareCount = (function (url) {
return 22;
});
}());
HBModule.register('facebook');
而與此我得到一個TypeError: Cannot read property 'register' of undefined
錯誤。
我在做什麼錯?
謝謝!
這是真棒!謝謝!還有一個問題,如果沒有設置模塊,我將如何使模塊使用默認功能?例如,如果我沒有創建「Facebook.getShareCount」函數,那麼在調用第一個函數時,它只會使用「HBModule.getShareCount」函數? –
謝謝!有很多方法可以做到這一點;我建議使用「類」(原型繼承),因爲我認爲它提高了可讀性。我不知道你正在使用什麼版本的Meteor,所以我要爲Meteor 1.3+編寫一個例子:(你可以在Meteor的早期版本中做相同的處理,但它會寫得有些不同)。 https://gist.github.com/nathantreid/8ef9e734d52b179bee12123ef81b3065 –
哦,這人是完美的。非常感謝! –