我在考虑为我的一些项目采用 Browserify,但是希望确保其他人不必使用 Browserify 就可以使用(打包的)代码。显而易见的方法是通过 module.exports
和 window.
全局同时公开模块导出。然而,我不想为那些正在 require
脚本的人污染全局命名空间。
是否有可能检测到脚本是否正在被 require
?如果可以的话,我可以做如下操作:
var mymodule = (function() { ... })();
if (isRequired()) {
module.exports = mymodule;
} else {
window.mymodule = mymodule;
}
请注意,无论如何,都将预先捆绑此模块,因此var mymodule
不会暴露全局变量。另外,目前我正在使用揭示模块模式,但愿意切换到适用于browserify的其他模式。
如何使模块既可require
,又可以通过<script src=
加载?最好的方法是在这两种情况下都暴露一个全局变量吗?
browserify infile --standalone myspace -o outfile
将函数byteLength(...){...}
browserify化,我将通过从已经通过require()
包含outfile
的JS文件内调用myspace.byteLength(...)
来访问该函数。 - parttimeturtle