Javascript Requirejs未加载库
我正在使用一个数据分析工具(KNIME),该工具允许数据可视化,但只能通过公开javascript层(即,我无法构建html文件)实现,这意味着我需要通过Requirejs加载外部库 我通常只使用d3.js库,通过require()函数加载它非常简单。但是,当我尝试加载回归js库时,回归对象返回为未定义 回归js Github页面供参考- 如何加载这两个库,以便正确地可视化数据 我尝试过摆弄shim()和define(),但我不确定哪里出了问题Javascript Requirejs未加载库,javascript,requirejs,Javascript,Requirejs,我正在使用一个数据分析工具(KNIME),该工具允许数据可视化,但只能通过公开javascript层(即,我无法构建html文件)实现,这意味着我需要通过Requirejs加载外部库 我通常只使用d3.js库,通过require()函数加载它非常简单。但是,当我尝试加载回归js库时,回归对象返回为未定义 回归js Github页面供参考- 如何加载这两个库,以便正确地可视化数据 我尝试过摆弄shim()和define(),但我不确定哪里出了问题 require.config({ path
require.config({
paths: {
d3src: 'https://d3js.org',
},
map: {
'*': {
'd3': 'd3src/d3.v5.min', //loads fine
'd3-color': 'd3src/d3-color.v1.min', //loads fine
'd3-interpolate': 'd3src/d3-interpolate.v1.min', //loads fine
'd3-scale-chromatic': 'd3/src/d3-scale-chromatic.v1.min', //loads fine
'regression': 'https://cdnjs.cloudflare.com/ajax/libs/regression/1.4.0/regression.min.js' //does not seem to load properly
}
}
});
require(['d3', 'd3-color', 'd3-interpolate','regression'], function(d3,regression) { //am I not calling the regression object correctly here?
//ideally this code should return something
const result = regression.linear([[0, 1], [32, 67], [12, 79]]);
// Uncaught TypeError: regression.linear is not a function
const gradient = result.equation[0];
const yIntercept = result.equation[1];
console.log(result,gradient,yIntercept);
});
在提供的代码中,console.log()应该返回一个对象,后跟两个浮点数。您尝试加载的版本(1.4.0)非常旧,不支持
requirejs
。如果您仍然需要该版本,则需要将其加载到脚本
标记中,然后使用全局对象回归
如果您可以使用最新版本2.0.1,那么您可以这样做:
require.config({
paths: {
d3src: 'https://d3js.org',
regressionsrc: 'https://cdn.jsdelivr.net/npm/regression@2.0.1/dist'
},
map: {
'*': {
'd3': 'd3src/d3.v5.min', //loads fine
'd3-color': 'd3src/d3-color.v1.min', //loads fine
'd3-interpolate': 'd3src/d3-interpolate.v1.min', //loads fine
'd3-scale-chromatic': 'd3/src/d3-scale-chromatic.v1.min', //loads fine
'regression': 'regressionsrc/regression.min' //loads fine
}
}
});
require(
['d3', 'd3-color', 'd3-interpolate','regression'],
function(d3,d3Color, d3Interpolate, regression) {
const result = regression.linear([[0, 1], [32, 67], [12, 79]]);
const gradient = result.equation[0];
const yIntercept = result.equation[1];
console.log(result,gradient,yIntercept);
});
从而不是从cdnjs.com加载它
或者使用npm安装回归
并从您自己的服务器或本地加载它(如果正在开发)
希望有帮助谢谢@Castro,我想我试过使用更新版本,但似乎不是这样。奇怪的是,有一个兼容性问题,但它是什么。