【问题标题】:Make available a library created using browserify and browserify-shim使使用 browserify 和 browserify-shim 创建的库可用
【发布时间】:2015-06-16 08:28:26
【问题描述】:

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

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

【问题讨论】:

    标签: javascript browserify browserify-shim


    【解决方案1】:

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

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

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

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

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

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

    请注意您的函数/模块名称。第一个代码行会将函数附加到window-object,因此您可以“污染”全局空间或更重要的是:您可以覆盖其他全局模块。

    【讨论】:

      最近更新 更多