Да, CommonJS Modules / 1.1 указывает только один способ сделать это.
Я использовал его только с Node.js на стороне сервера, но я считаю, что есть другие библиотеки, созданные для работы с браузером, которые совместимы с CommonJS.Помните, что существует несколько спецификаций модулей для сервера / браузера (пока не углублялся в это).
Модули написаны так же, как и любой другой фрагмент javascript, единственное дополнение - вы экспортируете то, что хотите показать:
module.exports.bar = Bar;
function Bar() {
// code
}
И использование:
var foo = require('mymodule');
foo.bar();
Что на самом деле делается в фоновом режиме, весь код оборачивается в другую функцию и экспортирует ее свойства.
Кроме того, Майкл Болин говорил о схожей проблеме в своем выступлении по ключевому слову «с» в JSConf .