Я рассматриваю возможность использования browserify для некоторых моих проектов, но хочу убедиться, что другим не нужно использовать если они хотят использовать (в комплекте) код. Очевидный способ сделать это - разоблачить экспорт модулей через module.exports, а также через window. global. Однако я бы предпочел не загрязнять глобальное пространство имен для тех, кто require использует script.
Можно ли определить, является ли script require d? Если да, то я мог бы сделать что-то вроде:
var mymodule = (function() { ... })();
if (isRequired()) {
module.exports = mymodule;
} else {
window.mymodule = mymodule;
}
Обратите внимание: что бы это ни было, это будет связано заранее, поэтому var mymodule не будет отображать глобальное. Кроме того, в настоящее время я использую раскрытие шаблона модуля, но хотел бы перейти на что-то более подходящее для браузера.
Какой лучший способ сделать модуль как require способен, так и <script src= способен? Лучше всего просто разоблачить глобальную ситуацию в обоих случаях?