16

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

看来browserifyrequire定义的函数在bundle.jsIIFE 内部,所以我不能使用它。有没有可能把这个扔掉来代替 global 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 传递给它,它只能由服务器端模板呈现。

注意我正在使用 Browserify v2。

4

1 回答 1

33

您可以使用-r为您指定的文件公开全局函数: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 app公开require('app')外部环境即可。

于 2013-03-17T05:10:24.610 回答