RequireJS - Shim多个共同依赖的非AMD模块

时间:2015-10-14 14:45:46

标签: javascript requirejs amd shim

我有来自第三方的两个外部文件/模块,我无法改变或以其他方式控制。当页面加载时,它们会在浏览器运行时从第三方的服务器上按需获取。

第一个文件/模块是第三方库本身,我可以将其设置为在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变量。

任何建议都会有所帮助。

0 个答案:

没有答案