当require.js存在时,如何成功加载dimple.js?

时间:2014-03-04 23:37:55

标签: javascript d3.js requirejs amd js-amd

当D3检测到像require.js这样的AMD时,会自动禁用全局命名空间污染。 Dimple.js期望d3在全局命名空间中。 This guy说他可以使用填充物加载凹坑,我可以找到similar claims for nvd3yet another incomplete example here

但是,我找不到完整的工作示例。以下是require.config

的非工作示例
require.config({
    shim: {
        d3: { exports: "d3" },
        dimple: {
            exports: "dimple",
            deps: ["d3"]
        }
    },
    paths: {
        d3: "http://d3js.org/d3.v3.min",
        dimple: "http://dimplejs.org/dist/dimple.v1.1.5.min"
    }
});

一些不起作用的例子:

require(["dimple"], function(dimple) {
    var svg = dimple.newSvg("#awesome_bars", 800, 600);
}
// -> dimple is undefined

Dimple是(我认为!)一个合适的CommonJS库,我能够加载d3(没有垫片)就好了。如果你想知道,是的,我有一个合适的div,这与未定义的结果无关。

那么,我怎样才能在require.js的上下文中访问dimple?

1 个答案:

答案 0 :(得分:1)

Require.js不支持shims属性。它应该是shim