使用browserify和browserify-shim创建一个库

时间:2015-06-16 08:28:26

标签: javascript browserify 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来实现此目的?

非常感谢你的帮助! 亨利

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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

注意:您不必分开包含mylib.js。只需加入捆绑包。

小心您的功能/模块名称。第一个代码行将函数附加到window - 对象,因此您可以“污染”全局空间或更重要:您可以覆盖其他全局模块。