我有一个用于客户端站点的 javascript 库,如下所示:
<script src="foo.js"></script>
<div id="mydiv"></div>
<script>
(function() {
foo(document.getElementById("mydiv");
})();
</script>
即 foo.js 导出一个函数(“foo”),该函数假定获取一个 DOM 元素作为参数。
我想将 foo.js 拆分为几个不同的“模块”(逻辑部分),为此我正在查看Broserify或requireJS。问题是,如果 browserify(据我所知,requireJS)不导出任何 foo 的顶级函数,所以我无法从 html 文件中访问“foo”函数,如上所示。似乎使用 browserify 我可以在构建最终 js 时使用-r选项:
browserify -r ./foo.js > bundle.js
这将创建一个可以在客户端站点中使用的全局要求。不过,我对这个解决方案不太满意,因为它污染了全局空间,而且我的脚本旨在嵌入其他站点(可能有冲突的require)。我在这里运气不好?我错过了什么吗?我想我所需要的只是一种方法来加入不同的 js 源文件以便于开发并且只导入一个最终的 javascript。有没有更好的解决方案适合我的需求?
米;