Pozadie
Hľadám alternatívu k súčasnej technike, ktorú používam na zavedenie highcharts.js s mojimi modulmi curljs. V súčasnosti načítavajú požadované knižnice týmto spôsobom:
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;
});
V súčasnosti to funguje a môžte mi odkazovať jsfiddle demoing moje súčasné riešenie.
Pokúsil som sa ohodnotiť Highchart pomocou js! plugin a vytvoriť objekt kučera konfigurovaný, ako je to špecifikované v dokumentácii zakrivenia:
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"}
};
ale dostávam chybu "define () is missing or duplicated" (chyba duplicitnej chyby alebo chyby duplicity) pri pokuse o prečistenie súboru highchart.js.
Mojou otázkou je moje riešenie vhodné, aj keď to funguje? Existujú alternatívy?
odpovede:
2 pre odpoveď č. 1Skúste použiť pôvodný načítač curl.js. Je to skvelé pre globálne skripty, ako sú 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 }
}
});
Všimnite si, že som zahrnula cestu k zvlnenie. To je potrebné pre zakrivenie nájsť starší nakladač.
Za normálnych okolností by ste nepoužívali rovnakú staršiu konfiguráciupre všetky tri libs, ale pretože som nemohol povedať, či highcharts-viac a export libs nehlásia žiadne užitočné globals, že zvlnenie mohol exportovať vo vašom mene, som práve použil rovnaké config pre všetky tri.
Viac informácií nájdete tu: https://github.com/cujojs/curl/tree/master/src/curl/loader