/ / Quel est le meilleur moyen d’intégrer Highcharts à Curljs? - javascript, jquery, highcharts, amd, curljs

Quel est le meilleur moyen d'intégrer Highcharts à Curljs? - javascript, jquery, highcharts, amd, curljs

Contexte

Je cherche une alternative à la technique actuelle que j'utilise pour charger highcharts.js avec mes modules curljs. Actuellement, je charge les bibliothèques requises de cette manière:

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

Cela fonctionne actuellement, et vous pouvez vous référer à mon jsfiddle demoing ma solution actuelle.

J'ai essayé de caler Highchart en utilisant js! plugin et créez un objet de configuration curl comme spécifié par la documentation 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"}
};

mais je reçois le message d'erreur "define () est manquant ou dupliqué" lorsque curl tente de lire le fichier highchart.js.

Ma question est donc ma solution appropriée, une, même si cela fonctionne? Y a-t-il des alternatives?

Réponses:

2 pour la réponse № 1

Essayez d’utiliser l’ancien chargeur de curl.js. C’est génial pour les scripts globaux, tels que les graphiques en hauteur.

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

Notez que j'ai inclus un chemin à curl. Ceci est nécessaire pour que curl trouve le chargeur hérité.

Normalement, vous ne seriez "t utiliser la même configuration héritéepour les trois bibliothèques, mais comme je ne pouvais pas "dire si les bibliothèques highcharts-more et exportant ne déclaraient pas de globales utiles pouvant être exportées par curl en votre nom, j'ai simplement utilisé la même configuration pour les trois.

Plus d'infos ici: https://github.com/cujojs/curl/tree/master/src/curl/loader