1

Browserify / Browserify Shim を使用してブラウザ用の JavaScript ライブラリを作成し、グローバル変数からブラウザ内で使用できるようにしたいと考えています。

エントリーJSファイルのエクスポートがこの変数に添付されることを望みます。たとえば、私のライブラリでは、次のようになります。

exports.doSomething = function() {
    (...)
};

そして、ブラウザ内でこれを行いたいと思います:

<html>
  <head>
    <script type="text/javascript" src="mylib.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {
      $('#test').click(function() {
        mylib.doSomething();
      });
    });
    </script>
  </head>
  (...)
</html>

これを実現するために Browserify / Browserify Shim を構成するにはどうすればよいですか?

どうもありがとうございました! ティエリー

4

1 に答える 1

1

これは browserify の動作方法ではないため、これを実現するように browserify を構成することはできません。ただし、browserify のglobal変数を使用して関数を公開できます。

次の行をライブラリに追加します。

global.doSomething = function() { ... }

次に、HTML コードを次のように変更します。

$(document).ready(function() {
  $('#test').click(function() {
    doSomething();
  });
});

注: 個別に含める必要はありませんmylib.js。バンドルを含めるだけです。

関数/モジュール名には注意してください。最初のコード行は関数をwindowオブジェクトに追加するため、グローバル空間を「汚染」するか、さらに重要なことに、他のグローバル モジュールをオーバーライドできます。

于 2015-06-16T10:39:37.633 に答える