Skip to content

Instantly share code, notes, and snippets.

@rfox90
Created July 30, 2015 23:34
Show Gist options
  • Save rfox90/fa1a7c7a85f6ebc8bda1 to your computer and use it in GitHub Desktop.
Save rfox90/fa1a7c7a85f6ebc8bda1 to your computer and use it in GitHub Desktop.
Using globs in Package.js for local application packages
Package.describe({
summary: 'test',
name: 'ahref:test',
version: '0.0.1'
});
var packages = [];
var globApi = Npm.require('glob');
var path = Npm.require('path');
Package.onUse(function (api) {
api.versionsFrom('METEOR@1.0');
packages.forEach(function(pkg){
api.use(pkg);
});
function registerGlob(glob,target) {
if(target === 'both') {
target = ['client','server'];
} else {
var targetArray = [];
targetArray[0] = target;
target = targetArray;
}
var options = {};
options.cwd = path.join(process.cwd() + '/packages/test/');
var globResults = globApi.sync(glob,options);
api.addFiles(globResults,target);
}
function addPublicFile(file) {
api.addFiles('public/'+file,['client']);
}
//Overide everything and let this be loaded first
api.addFiles(['common/globals.js'], ['client', 'server']);
//Register any licencing mostly meteor toys atm
registerGlob('server/licensing/*.js','server');
//Configure random packages and settings
registerGlob('common/config/{**/*,*}.+(js|html)','both');
registerGlob('server/config/{**/*,*}.+(js|html)','server');
registerGlob('client/config/{**/*,*}.+(js|html)','client');
//Run any database setup next
registerGlob('common/collections/{**/*,*}.+(js|html)','both');
registerGlob('common/tabular/{**/*,*}','both');
registerGlob('server/permissions/*.js','server');
registerGlob('server/publications/*.js','server');
//templates
registerGlob('server/templates/{**/*,*}.+(js|html)','server');
registerGlob('client/templates/{**/*,*}.+(js|html)','client');
registerGlob('client/helpers/{**/*,*}.js','client');
//Controllers and router
api.addFiles('common/router/config.js',['client','server']);
api.addFiles('common/router/meta.js',['client','server']);
registerGlob('common/router/controllers/*.js','both');
registerGlob('common/router/routes/*.js','both');
addPublicFile('css/style.css');
addPublicFile('css/style-fullscreen.css');
addPublicFile('css/custom-style.css');
addPublicFile('js/vendor/perfect-scrollbar/perfect-scrollbar.min.js');
addPublicFile('js/plugins.js');
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment