我想使用Browserify bundle 我的文件,但是随后我需要在HTML页面本身上的Browserify bundle bundle.js
中需要其中一个模块。当前无法执行此操作,因为该页面上未定义require
函数。
看来,由browserify在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传递给它,该JSON只能由服务器端模板呈现。N.B.我正在使用Browserify v2。
最佳答案
您可以对指定的文件使用-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')
暴露给外部上下文。关于javascript - Browserify v2的全局需求,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15456426/