【发布时间】:2021-10-13 23:27:59
【问题描述】:
我已经通过 npm 安装了 highcharts-export-server 和 highcharts-regression 插件。这些都安装在我本地的项目目录中。我正在通过节点模块使用导出器。如果没有插件,这一切都可以正常工作并且正在导出图像。除了,当我包含 highcharts-regression 插件时,我收到一条错误消息,指出“无法读取未定义的属性‘数据’”。
我将导出器参数的选项对象上的 resources 属性设置为带有 files 属性的 json 字符串。
这是我的模块:
const exporter = require('highcharts-export-server');
module.exports = (callback, classRates) =>
{
var exportSettings = {
resources: "{ \"files\": \"https://cdn.jsdelivr.net/npm/highcharts-regression@2.2.0/highcharts-regression.min.js\" }",
type: 'png',
options: {
title: {
text: 'My Chart'
},
xAxis: {
categories: ["Jan", "Feb", "Mar", "Apr", "Mar", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
},
series: [
{
regresssion: true,
regressionSettings: {name:"reg", type: 'linear'},
type: 'line',
data: [[1, 1], [2, 3], [3, 2], [4,4]]
},
{
type: 'line',
data: [5, 3, 4, 2]
}
]
}
};
exporter.initPool();
exporter.export(exportSettings, function (err, res)
{
callback(null, res.data);
exporter.killPool();
process.exit(1);
});
};
我还阅读了有关在 node_modules/highcharts-export-server/build.js 文件中设置资源路径的信息。但我不确定该放在哪个数组中。
如何包含这个插件?
更新:有没有办法从导出器获取 highcharts 实例?这样我就可以自己导入 highcharts-regression 插件并在开始导出之前对其进行初始化。
【问题讨论】:
-
更新:我已将对 highcharts-regression.js 文件的引用移至 build.js 并将其放在
cdnAdditional数组中。现在我得到一个不同的错误:an error occured when rendering the chart: SyntaxError: Unexpected token S in JSON at position 0,在调用堆栈的更下方有一个不同的异常:SyntaxError: Use of reserved word 'let' in strict mode。所以我现在一无所知。 -
更新 2:我从 build.js 中删除了插件,因为我意识到我没有在资源选项 (
resources: "{ \"files\": [\"https://cdn.jsdelivr.net/npm/highcharts-regression@2.2.0/highcharts-regression.min.js\"] }") 中使用数组语法,所以我在我的模块中更新了它,它仍然对reading property data of undefined抛出同样的错误。 -
更新 3:添加了 --allowCodeExecution ,现在进程冻结了。这不应该那么难。
-
更新 4:我将
allowCodeExecution: true添加到选项对象中,并且必须摆脱resources属性中的数组语法。上面的更新 #3 过去了,现在我没有收到任何错误,只是看不到趋势线。
标签: highcharts