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-object,因此您可以“污染”全局空间或更重要的是:您可以覆盖其他全局模块。

于 2015-06-16T10:39:37.633 回答