将 Highcharts 与 Curljs 集成的最佳方式是什么?
What is the best way to integrate Highcharts with Curljs?
背景
我正在寻找一种替代方法来替代我使用 curljs 模块加载 highcharts.js 的当前技术。目前我正在以这种方式加载所需的库:
define("Test", ["jquery",
"js!https://code.highcharts.com/highcharts",
"js!https://code.highcharts.com/highcharts-more",
"js!https://code.highcharts.com/modules/exporting"],
function ($, hchart, hchartmore, hchartexp) {
var testFunc = function () {
return {
markup: function () {
$("#mixer").html("did it");
},
chartIt: function () {
window.chart = new Highcharts.Chart({
// do the highchart configs});
};
return testFunc;
});
这个目前有效,你可以参考我的jsfiddle demoing my current solution。
我尝试使用 js! 插件填充 Highchart 并创建 curl 文档指定的 curl 配置对象:
curl = {
baseUrl: "",
paths: {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js",
"hchart": "js!https://code.highcharts.com/highcharts",
"hchartmore":"js!https://code.highcharts.com/highcharts-more",
"hchartmore":"js!https://code.highcharts.com/modules/exporting"}
};
但是当 curl 尝试读取 highchart.js 文件时我收到 "define() is missing or duplicated" 错误。
那么我的问题是我的解决方案是否合适,即使它有效?还有其他选择吗?
尝试使用 curl.js 的旧加载器。它非常适合全局脚本,例如 highcharts。
var hchartBase = "https://code.highcharts.com/";
var hchartCfg = {
loader: "curl/loader/legacy",
exports: "Highcharts"
};
curl.config({
baseUrl: "",
paths: {
"curl": "your/path/to/curl/curl.js",
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js",
"hchart": { location: hchartBase + "highcharts", config: hchartCfg },
"hchartmore": { location: hchartBase + "highcharts-more", config: hchartCfg },
"hchartexp": { location: hchartBase + "modules/exporting", config: hchartCfg }
}
});
请注意,我包含了 curl 的路径。这是 curl 查找遗留加载器所必需的。
通常情况下,您不会对所有三个库使用相同的遗留配置,但由于我无法判断 highcharts-more 和导出库是否未声明 curl 可以代表您导出的任何有用的全局变量,我只是对所有三个使用了相同的配置。
更多信息在这里:https://github.com/cujojs/curl/tree/master/src/curl/loader
背景
我正在寻找一种替代方法来替代我使用 curljs 模块加载 highcharts.js 的当前技术。目前我正在以这种方式加载所需的库:
define("Test", ["jquery",
"js!https://code.highcharts.com/highcharts",
"js!https://code.highcharts.com/highcharts-more",
"js!https://code.highcharts.com/modules/exporting"],
function ($, hchart, hchartmore, hchartexp) {
var testFunc = function () {
return {
markup: function () {
$("#mixer").html("did it");
},
chartIt: function () {
window.chart = new Highcharts.Chart({
// do the highchart configs});
};
return testFunc;
});
这个目前有效,你可以参考我的jsfiddle demoing my current solution。
我尝试使用 js! 插件填充 Highchart 并创建 curl 文档指定的 curl 配置对象:
curl = {
baseUrl: "",
paths: {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js",
"hchart": "js!https://code.highcharts.com/highcharts",
"hchartmore":"js!https://code.highcharts.com/highcharts-more",
"hchartmore":"js!https://code.highcharts.com/modules/exporting"}
};
但是当 curl 尝试读取 highchart.js 文件时我收到 "define() is missing or duplicated" 错误。
那么我的问题是我的解决方案是否合适,即使它有效?还有其他选择吗?
尝试使用 curl.js 的旧加载器。它非常适合全局脚本,例如 highcharts。
var hchartBase = "https://code.highcharts.com/";
var hchartCfg = {
loader: "curl/loader/legacy",
exports: "Highcharts"
};
curl.config({
baseUrl: "",
paths: {
"curl": "your/path/to/curl/curl.js",
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js",
"hchart": { location: hchartBase + "highcharts", config: hchartCfg },
"hchartmore": { location: hchartBase + "highcharts-more", config: hchartCfg },
"hchartexp": { location: hchartBase + "modules/exporting", config: hchartCfg }
}
});
请注意,我包含了 curl 的路径。这是 curl 查找遗留加载器所必需的。
通常情况下,您不会对所有三个库使用相同的遗留配置,但由于我无法判断 highcharts-more 和导出库是否未声明 curl 可以代表您导出的任何有用的全局变量,我只是对所有三个使用了相同的配置。
更多信息在这里:https://github.com/cujojs/curl/tree/master/src/curl/loader