Errore Provare il caricamento del modulo (AMD) con requisite.js
-
27-10-2019 - |
Domanda
A questo punto mi sto un po 'frustrata.
Sto cercando di caricare jQuery e altre librerie nel mio file app.coffee. Il problema è che non riesco a caricare le dipendenze dei moduli nella mia definizione. Alcuni degli argomenti di input (JQ, JSN, ecc.) Sono null o solo oggetti HTMLDocument. Questo cambia in base alla permutazione di plugin che provo: "order", "Domready" o nessuno.
La mia directory JS Lib sembra un). E il mio file app.coffee sembra b). Ho provato a usare i "percorsi" nel referenziazione dei file requisite.config e solo dei file (quello che vedi di seguito). Sono a conoscenza dell'integrazione di Requisito-JQuery. Ma non dovrei essere in grado di farlo Ordina il mio plug -in caricamento?
Ricevo un diverso set di errori se provo "Paths". Vedo qualcuno suggerito jQuery 1.7 (anche qui). Funziona? Prima volevo fare un passo indietro e assicurarmi di avere i concetti correttamente. i) Richiedi.config ii) Definizione del modulo con dipendenze, iii) il plug -in dell'ordine, ecc.
Se avessi questi concetti correttamente, penso che sia un problema di versione jQuery. Tuttavia, non è solo jQuery come dipendenza. Ed è incredibilmente fastidioso perdere tempo in questo modo. Qualsiasi aiuto è apprezzato. Grazie in anticipo.
UN)
$ tree js/lib/ js/lib/ ├── backbone.js ├── backbone_loader.js ├── domReady.js ├── jquery-1.6.3.js ├── json2.js ├── order.js ├── pure.js ├── require.js └── underscore.js
B)
require.config({ baseUrl: "/js", paths: order : '/js/lib/order' jQuery : '/js/lib/jquery-1.6.3' json2 : '/js/lib/json2' Underscore : '/js/lib/underscore' Backbone : '/js/lib/backbone_loader' pure : '/js/lib/pure' }) define( [ 'js/lib/order!js/lib/jquery-1.6.3', 'js/lib/order!js/lib/json2', 'js/lib/order!js/lib/underscore', 'js/lib/order!js/lib/backbone', 'js/lib/order!js/lib/pure', 'js/lib/order!js/bkeeping/models', ] (jq, jsn, und, bbn, pur, models) -> console.log('bkeeping LOADED') # return an object with the models in it models : models jQuery : jq.noConflict() json2 : jsn Underscore : und.noConflict() Backbone : bbn.noConflict() pure : pure )
Soluzione 2
Grazie per la direzione su questo.
Ma sono andato a JQuery-1.7, ma ho ancora dovuto estrarre dallo spazio globale per ottenere l'oggetto. Questo vale per le mie altre librerie per ora e le loro dipendenze. Quello che ho finito per fare è stato restituire un oggetto con le dipendenze in esso. Ho fatto il caricamento della libreria con il Plug -in d'ordine.
Il contratto di oggetti di dipendenza viene approvato nella funzione di callback (JQ, PUR, JSN, ecc.), Semplicemente non funziona per queste librerie. Funziona per i miei moduli definiti (ex: modelli), ma non libri esterni. Ho provato il Usa il plugin, ma ho scoperto che non ha funzionato per sottolineare e spina dorsale, o non l'ho impostato correttamente. Questa è la mia soluzione praticabile per ora; Anche se devo dire che i mal di testa stanno seriamente offuscando i vantaggi per Requisite.js.
define( [ 'order!js/lib/jquery-1.7', 'order!js/lib/pure', 'order!js/lib/json2', 'order!js/lib/underscore', 'order!js/lib/backbone', 'order!bkeeping/models', ] (jq, pur, jsn, und, bbn, models) -> console.log('bkeeping LOADED') # return an object with the dependencies in it models : models jQuery : jQuery.noConflict() pure : pur # pure and json2 objects are simply used in other libs. I don't need them directly json2 : jsn Underscore : _.noConflict() Backbone : Backbone.noConflict() )
Altri suggerimenti