Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript browserify包:如何在窗口对象内公开库?_Javascript_Node.js_Bundle_Browserify_Bundling And Minification - Fatal编程技术网

Javascript browserify包:如何在窗口对象内公开库?

Javascript browserify包:如何在窗口对象内公开库?,javascript,node.js,bundle,browserify,bundling-and-minification,Javascript,Node.js,Bundle,Browserify,Bundling And Minification,我正在尝试将我的库绑定到一个.js文件中,该文件可以从脚本标记加载。我想让我的库在浏览器控制台的变量下可用(换句话说,我想将它导出到窗口对象)。我如何在browserify中完成它 这是我现有的grunt browserify配置: browserify: { options: { watch: "on", banner: "<%= banner %>", browserifyOptions: { insertGlobalVars: "on",

我正在尝试将我的库绑定到一个
.js
文件中,该文件可以从脚本标记加载。我想让我的库在浏览器控制台的变量下可用(换句话说,我想将它导出到
窗口
对象)。我如何在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']
    }
  }
我更愿意做:

jsf.doSomething();

直接(这样将
jsf
分配给
window
将是自动的)。如何做到这一点,browserify在这方面的可能性是什么?

在Browserifyed代码中,您可以访问正常的
窗口
变量,并且它还别名为
全局
,以便与节点兼容。因此,您可以在代码末尾添加以下内容:

global.jsf = jsf;

如果您不想让
json模式伪造者始终导出自身,请将其包装在另一个模块中,重新导出
jsf
,并将其附加到
global

我不想包含将库附加到
global
的代码,因为这也会影响node.js环境。实际上,这只会影响图书馆本身。到目前为止,我认为
standalone
选项是一个更好的解决方案。
global.jsf = jsf;