external requires上的Browserify文档部分展示了如何使捆绑包中的模块可用于全局环境:
browserify -r through -r duplexer -r ./my-file.js:my-module > bundle.js但是我在配置Grunt-Browserify时遇到了问题。
-r标志似乎对应于Grunt-Browserify中的require选项,但是docs description for this option没有提到任何外部请求或导出require()函数。
在我的tried文件中,我尝试将require选项设置为我需要公开的模块(顺便说一下,它已经在包中了):
options: {
require: ['./dev/js/foomod.js'],
}然后在我的页面脚本中,我尝试require()模块,如文档所示:
<script>
var Foomod = require('./foomod.js');
Foomod.init({foo: 'bar'});
</script>但这会记录错误require is not defined。
我的目标是调用模块的init()方法,这样我就可以传递运行时数据,而不需要将其放入window全局变量中。
发布于 2014-09-09 09:55:01
使用browserify版本5.11.1和grunt-browserify版本3.0.1,我已经成功地实现了类似的设置:
options:{
preBundleCB: function (b) {
b.require("./dev/js/foomod.js",{expose: 'foomod'});
}
}https://stackoverflow.com/questions/25585903
复制相似问题