浏览器外部需要使用Grunt-Browserify

时间:2014-08-30 19:16:11

标签: javascript gruntjs browserify commonjs

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()功能

在我的Gruntfile中,我尝试将require选项设置为我需要公开的模块(顺便说一下,它已经在bundle中):

options: {
  require: ['./dev/js/foomod.js'],
}

然后在我的页面脚本中,我尝试require()模块中显示的模块:

<script>
  var Foomod = require('./foomod.js');
  Foomod.init({foo: 'bar'});
</script>

但是记录错误require is not defined

我的目标是调用模块的init()方法,以便我可以传入运行时数据而不将其放在window全局中。

1 个答案:

答案 0 :(得分:0)

使用browserify版本5.11.1和grunt-browserify版本3.0.1,我设法让类似的设置工作:

options:{
  preBundleCB: function (b) {
    b.require("./dev/js/foomod.js",{expose: 'foomod'});
  }
}