Javascript 使用Grunt Browserify的Browserify外部要求
上的Browserify docs部分显示如何使捆绑包中的模块可用于全局环境:Javascript 使用Grunt Browserify的Browserify外部要求,javascript,gruntjs,browserify,commonjs,Javascript,Gruntjs,Browserify,Commonjs,上的Browserify docs部分显示如何使捆绑包中的模块可用于全局环境: browserify -r through -r duplexer -r ./my-file.js:my-module > bundle.js 但是我在配置这个与Grunt Browserify一起工作时遇到了问题 -r标志似乎对应于Grunt Browserify中的require选项,但没有提及外部requires或导出require()函数 在我的GrunFile中,我尝试将require选项设置为我需
browserify -r through -r duplexer -r ./my-file.js:my-module > bundle.js
但是我在配置这个与Grunt Browserify一起工作时遇到了问题
-r
标志似乎对应于Grunt Browserify中的require
选项,但没有提及外部requires或导出require()
函数
在我的GrunFile中,我尝试将require
选项设置为我需要公开的模块(顺便说一下,该模块已经在捆绑包中):
然后在我的页面脚本中,我尝试require()
模块,如文档所示:
<script>
var Foomod = require('./foomod.js');
Foomod.init({foo: 'bar'});
</script>
var Foomod=require('./Foomod.js');
Foomod.init({foo:'bar'});
但是没有定义错误require
我的目标是调用模块的
init()
方法,如图所示,这样我就可以传入运行时数据,而无需将其放入窗口
全局。使用browserify 5.11.1版和grunt browserify 3.0.1版,我成功地实现了类似的设置:
options:{
preBundleCB: function (b) {
b.require("./dev/js/foomod.js",{expose: 'foomod'});
}
}
所以,一旦您在browserify任务下的选项上设置了这个,require函数是全局定义的吗?我只是做了你提到的事情,当我试图从我的索引页面请求文件时,我仍然有一个“uncaughtreferenceerror:require未定义”错误。你使用require(“foomod”)了吗?我有一个“app.js”是捆绑包,里面有一个“initialize.coffee”-我已经在使用coffeify进行转换了-我正在使用require('initialize')无效,因为'require'似乎尚未定义
options:{
preBundleCB: function (b) {
b.require("./dev/js/foomod.js",{expose: 'foomod'});
}
}