提供使用 browserify 和 browserify-shim 创建的库

Make available a library created using browserify and browserify-shim

我想使用 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 来实现这一点?

非常感谢您的帮助! 蒂埃里

您不能配置 browserify 来实现此目的,因为这不是 browserify 的工作方式。但是您可以使用 browserify 的 global 变量来发布您的函数。

将以下行添加到您的库中:

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

然后像这样更改您的 html 代码:

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

注意:您不必单独包含 mylib.js。只需包含捆绑包。

小心你的 function/module 名字。第一行代码会将函数附加到 window-object,因此您可以 "pollute" 全局 space 或更重要的是:您可以覆盖其他全局模块。