全局需要使用Browserify v2

时间:2013-03-17 00:44:19

标签: javascript module browserify

我想使用Browserify来捆绑我的文件,但是我需要在HTML页面本身上需要我的Browserify中的一个模块捆绑bundle.js。目前无法做到这一点,因为页面上没有定义require函数。

浏览器require中定义的bundle.js函数似乎在IIFE中,所以我不能使用它。是否有可能将这一个用于代替全局require

<script src="bundle.js"></script>
<script>
  // Require the `app` module inside of `bundle.js`
  var app = require('app');
  app.start();
</script>

我需要这样做,因为我的app.start函数需要传递一些JSON,它只能由服务器端模板呈现。

N.B。我正在使用Browserify v2。

1 个答案:

答案 0 :(得分:32)

您可以对指定的文件使用-rexpose a global require()函数:

x.js:

module.exports = function (n) { return n * 111 }

控制台

$ browserify -r ./x.js > bundle.js

然后在你的HTML中:

<script src="bundle.js"></script>
<script>
    var x = require('./x.js');
    console.log(x(3))
</script>

将打印333

在您的情况下,只需browserify -r apprequire('app')公开给外部环境。