我正在考虑为我的一些项目采用browserify,但想确保其他人如果想使用(捆绑的)代码就不必使用browserify。显而易见的方法是module.exports
通过window.
全局和全局公开模块导出。但是,我宁愿不要污染那些正在require
编写脚本的人的全局命名空间。
是否可以检测脚本是否正在被require
d?如果是,那么我可以执行以下操作:
var mymodule = (function() { ... })();
if (isRequired()) {
module.exports = mymodule;
} else {
window.mymodule = mymodule;
}
请注意,无论如何,这将预先捆绑,因此var mymodule
不会暴露全局。此外,目前我正在使用显示模块模式,但愿意切换到更适合 browserify 的东西。
使模块既require
能干又<script src=
能干的最好方法是什么?在这两种情况下最好只公开一个全局变量吗?