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