Javascript 使用Grunt Browserify的Browserify外部要求

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 docs部分显示如何使捆绑包中的模块可用于全局环境:

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'});
  }
}