我有来自第三方的两个外部文件/模块,我无法改变或以其他方式控制。当页面加载时,它们会在浏览器运行时从第三方的服务器上按需获取。
第一个文件/模块是第三方库本身,我可以将其设置为在shim配置中导出它的变量(下面),我们将该变量称为“thirdpartylib”。 “thirdpartylib”通常不在窗口对象之外。
第二个文件/模块是一个安装文件,它将配置变量附加到第一个文件创建的“thirdpartylib”对象。例如,它添加了“thirdpartylib.foo ='x';”到原始对象和其他配置选项。
我需要能够填充BOTH文件,让第二个设置文件依赖于第一个,使用它的导出值,然后使用它的添加/更改导出对象。
然后我需要能够依赖我自己的自定义代码中的第二个模块(设置文件)并从那里运行它的init方法。
require(['thirdpartylibsetup'], function(thirdpartylib) {
thirdpartylib.init();
});
在我的shim配置中,我尝试了以下内容:
shim: {
'thirdpartylib': {
exports: 'thirdpartylib'
},
'thirdpartylibsetup': {
deps: ['thirdpartylib'],
exports: 'thirdpartylib'
}
我尝试使用和不使用“thirdpartylibsetup”模块(也来自第三方)的导出。 'thirdpartylibsetup'模块在运行时没有看到thirdpartylib变量。
任何建议都会有所帮助。