这篇文章是关于NodeJS的前一个question,需要一个注入函数的模块。但是,之前的问题是在Webpack的上下文中。我也试图集成d3.js和d3.slider模块,但是使用RequireJS。
根据Nikos Paraskevopoulos留下的评论,需要一个垫片。我没有成功实现d3.slider模块所需的垫片,并希望有人能引导我朝着正确的方向前进。现在我有
require.config({
paths: {
"d3": "https://d3js.org/d3.v3.min",
"d3.slider": "lib/d3.slider"
},
shim: {
"d3.slider": {
"deps": ["d3"],
"exports": "d3"
}
}
});
require(['d3'], function(d3) {
console.log(d3.version);
d3.select("#time_slider").call(d3.slider());
});
此日志:
3.5.17
TypeError:d3.slider不是函数
我认为我的问题是在垫片中,但我不太确定。任何方向都表示赞赏。
答案 0 :(得分:0)
当我查看d3.slider
的源代码时,我看到它调用了define
。所以你不需要shim
。
另外,您没有加载它。你应该这样做:
require(['d3', 'd3.slider'], function (d3) {
console.log(d3.version);
d3.select("#time_slider").call(d3.slider());
});
在源代码中,我看到它会自行安装在d3
上。因此,您无需向匿名函数添加参数:一旦加载,它将在d3
对象上可用。