我想创建一个独立的browserify包,它将导出的对象直接附加到window对象,而不是嵌套在附加到的包装器对象下window.
这样做,browserify忽略窗口:
browserify main.js --standalone window > bundle.js
Run Code Online (Sandbox Code Playgroud)
该main.js文件如下所示:
var ModuleA = require('./module-a.js');
var ModuleB = require('./module-b.js');
module.exports = {
ModuleA: ModuleA,
ModuleB: ModuleB
}
Run Code Online (Sandbox Code Playgroud)
我希望两个模块直接在全局命名空间中公开:window.ModuleA和window.ModuleB.
该文件没有提供明显的解决方案.
你能帮我吗?
这应该工作:
global.ModuleA = require('./module-a.js');
global.ModuleB = require('./module-b.js');
Run Code Online (Sandbox Code Playgroud)
您也可以使用window而不是global.
的参数--standalone应该是您要分配给模块的全局变量的名称。在您的示例中,您使用的是“窗口”,这可能会导致站点中发生一些奇怪的事情。
而不是将模块强制进入全局范围(由于冲突,某些开发人员可能不希望将模块放到全局范围内),而是执行以下操作:
browserify main.js --standalone TheModulesAB > bundle.js
然后,您将能够bundle.js像这样加载和引用您的模块:
TheModulesAB.A //module-a.js
TheModulesAB.B //module-b.js
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6014 次 |
| 最近记录: |