browserify包:如何在window对象中公开库?

时间:2016-01-29 10:47:35

标签: javascript node.js bundle browserify bundling-and-minification

我正在尝试将我的库捆绑到可以从脚本标记加载的.js文件中。我想让我的库在浏览器控制台中的变量下可用(换句话说,我想将它导出到window对象中)。我怎么能在browserify中做到这一点?

这是我现有的grunt-browserify配置:

browserify: {
  options: {
    watch: "on",
    banner: "<%= banner %>",
    browserifyOptions: {
      insertGlobalVars: "on",
      noBuiltins: true,
      detectGlobals: false
    }
  },
  dist: {
    files: {
      'dist/json-schema-faker.js': ['lib/index.js']
    }
  }

目前我无法使用外部包中的捆绑库。

我知道browserify支持External requires,而不是

var jsf = require('json-schema-faker');
jsf.doSomething();

我更愿意这样做:

jsf.doSomething();
直接

(以便将jsf分配给window将是自动的)。怎么做,浏览器在这个问题上有什么可能性?

1 个答案:

答案 0 :(得分:-1)

在浏览器化的代码中,您可以访问普通的window变量,并且为了与Node的兼容性,它也被别名为global。因此,您可以将其添加到代码的末尾:

global.jsf = jsf;

如果您不希望json-schema-faker总是自行导出,请将其包装在另一个重新导出jsf的模块中,并将其附加到global