立体主义d3依赖于requirejs

时间:2017-01-17 14:42:04

标签: javascript d3.js requirejs cubism.js

当使用require.js时,我很难宣布立体主义对d3的依赖。

配置如下:

requirejs.config({
  baseUrl: './',
  paths: {
    'jquery': './jquery-1.10.2.min',
    'd3': './d3.min',
    'cubism': './cubism.v1'
 },
 shim: {
    cubism: {
        deps: ['d3']
    }
 }
});

我得到的错误是:

cubism.v1.js:187 Uncaught ReferenceError: d3 is not defined
at cubism.v1.js:187
at cubism.v1.js:1331

请帮我找到我错在哪里?

1 个答案:

答案 0 :(得分:0)

在我的情况下使用require.js时,立体主义没有按预期加载。我有一个解决此问题的方法,我将requirejs配置更改为:

requirejs.config({
baseUrl: './',
paths: {
    jquery: './jquery-1.10.2.min',
    d3: 'http://d3js.org/d3.v3.min',
    cubism_v1: './cubism.v1'
},
shim: {
    cubism_v1: {
        deps: ['d3']
    }
}
});

并将另一个模块声明为:

define('cubism', ['cubism_v1'], function (cubism) {
   return this.cubism; 
});

然后我可以根据需要在其他地方使用立体主义。

requirejs(['jQuery', 'd3', 'cubism'], function (jQuery, d3, cubism) {
   // cubism related code here
});