/ / Qual é a melhor maneira de integrar Highcharts com Curljs? - javascript, jquery, highcharts, amd, curljs

Qual é a melhor maneira de integrar Highcharts com Curljs? - javascript, jquery, highcharts, amd, curljs

fundo

Eu estou procurando uma alternativa para a técnica atual que uso para carregar o highcharts.js com meus módulos de curljs. No momento, estou carregando as bibliotecas necessárias desta maneira:

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;
});

Isso atualmente funciona, e você pode fazer referência ao meu jsfiddle demonstrando minha solução atual.

Eu tentei shear Highchart usando js! plug-in e crie um objeto de configuração curl conforme especificado pela documentação de 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"}
};

mas recebo o erro "define () está ausente ou duplicado" quando o curl tenta ler o arquivo highchart.js.

Minha pergunta, então, é a minha solução apropriada, apesar de funcionar? Existem alternativas?

Respostas:

2 para resposta № 1

Tente usar o carregador legado do curl.js. Ele é ótimo para scripts globais, como tabelas de classificação.

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 }
}
});

Observe que incluí um caminho para enrolar. Isso é necessário para curl para encontrar o carregador legado.

Normalmente, você não usaria a mesma configuração legadapara todas as três libs, mas como eu não sabia dizer se as libras highcharts-more e as exportadoras não declaram quaisquer globais úteis que o curl poderia exportar em seu nome, usei a mesma configuração para todos os três.

Mais informações estão aqui: https://github.com/cujojs/curl/tree/master/src/curl/loader