javascript - Browserify 外部需要 Grunt-Browserify

标签 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 全局中。

最佳答案

使用 browserify 版本 5.11.1 和 grunt-browserify 版本 3.0.1,我已经成功地获得了类似的设置:

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

关于javascript - Browserify 外部需要 Grunt-Browserify,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25585903/

相关文章:

javascript - 切换纸张按钮的禁用属性

javascript - 将 RequireJS 模块 (AMD) 重构为 Webpack 模块 (CommonJS)

node.js - 如何使用 nodejs 创建可下载的 zip 文件?

javascript - 如何在运行 Mocha 测试之前应用 jadeify 变换?

javascript - 带有 react.js 的编译文件太大

javascript - 如何创建能够引用封闭变量/函数的动态对象成员?

javascript - Ajax 不为数据表调用 php 页面

javascript - 上一页下一页按钮隐藏在分页中?

gruntjs - Grunt 没有给出任何输出 [Ubuntu]

javascript - 我删除了 package.json 和 Gruntfile.js,现在 Grunt 将不会加载依赖项