Ну, второй означает, что вы также хотите, чтобы функции и объекты и все, что в ваших модулях, находилось в глобальной области видимости. Вполне возможно, конечно, но это противоречит передовому опыту, чтобы быть несколько отвратительным.
Для первой части просто объявите глобально ваше пространство имен библиотеки:
var Library = {};
и затем начните заполнять его модулями:
Library.One = {};
Library.Two = {};
и затем начните добавлять функциональность к этим модулям.
(function($) {
var $.froobString = function(s) { .... };
...etc...
})(Library.One);
(Здесь я сделал это как самовыполняющуюся анонимную функцию, которая передает Library.One
как $
.)
Чтобы преобразовать все это в глобальные переменные, создайте следующую процедуру:
var convertToGlobals = function(module) {
for (name in module) {
window[name] = module[name];
}
};
convertToGlobals(Library.One)
Но опять же я бы советовал против этого.