次のように、クライアントサイトで使用することを目的としたjavascriptライブラリがあります。
<script src="foo.js"></script>
<div id="mydiv"></div>
<script>
(function() {
foo(document.getElementById("mydiv");
})();
</script>
つまり、foo.js は、DOM 要素をパラメーターとして取得すると想定される関数 ("foo") をエクスポートします。
foo.js をいくつかの異なる「モジュール」(論理部分) に分割したいので、そのためにBroserifyまたはrequireJSを調べています。問題は、browserify (および私が見た限りでは requireJS) が foo の最上位関数をエクスポートしない場合、上記のように html ファイルから「foo」関数にアクセスできないことです。browserify を使用すると、最終的な js をビルドするときに-rオプションを使用できるようです。
browserify -r ./foo.js > bundle.js
これにより、クライアント サイトで使用できるグローバルな要件が作成されます。ただし、このソリューションにはあまり満足していません。なぜなら、それはグローバル空間を汚染しており、私のスクリプトは他のサイトに埋め込まれているからです ( requireが衝突している可能性があります)。私はここで運が悪いのでしょうか?私は何かを逃していますか?必要なのは、開発を容易にするために異なる js ソース ファイルを結合し、最終的な JavaScript を 1 つだけインポートする方法だけだと思います。私のニーズに合ったより良い解決策はありますか?
M;