我想使用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。
答案 0 :(得分:32)
您可以对指定的文件使用-r
至expose 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 app
将require('app')
公开给外部环境。