jquery - How do I configure library plugins with Require.js? -



jquery - How do I configure library plugins with Require.js? -

i have jquery / require.js / backbone project loads jquery datatables library along several of plugins. configuration below works fine, seems kinda gross.

is there more elegant way load datatables dependent plugins?

it cool if there inverse of "deps" shim property load kid plugins 1 time given library loaded.

also, in config below i'm loading external dependencies app scope because literally used every single backbone view in app , don't want have define/include them in every module.

is stupid load external libraries in app scope rather including them in every view?

i appreciate best practice kind of guidance here. i've read lot of related threads on site , haven't been able find much in way of examples people loading lot of dependencies this.

require.config({ baseurl: 'js/com/mycompany/', paths: { jquery: '/js/lib/jquery', underscore: '/js/lib/underscore/underscore', backbone: '/js/lib/backbone/backbone', text: '/js/lib/require/text', jqueryui: '/js/lib/ui/jquery-ui-1.10.0.custom.min', json: '/js/lib/json/jquery.json-2.3.min', datatables: '/js/lib/datatables/js/jquery.datatables.min', datatablesselectable: '/js/lib/datatables/js/datatables.selectable', datatablestoggle: '/js/lib/datatables/js/jquery.grouptoggle', datatablesresize: '/js/lib/datatables/js/colreorderwithresize', datatablestabletools: '/js/lib/datatables/tabletools/js/tabletools.min', toaster: '/js/lib/toaster/javascript/jquery.toastmessage', cookie: '/js/lib/cookie/jquery.cookie', validation: '/js/lib/validation/jquery.validate', validationadditional: '/js/lib/validation/additional-methods', alerts: '/js/lib/alerts/jquery.alerts', loadmask: '/js/lib/loadmask/jquery.loadmask.min', qtip: '/js/lib/qtip/jquery.qtip.min', dropdown: '/js/lib/dropdown/jquery.dropdown', extensions: '/js/com/mycompany/common/extensions', app: 'app' }, shim: { jquery: { exports: '$' }, underscore: { exports: '_' }, backbone: { deps: ["underscore", "jquery"], exports: "backbone" }, jqueryui: { deps: ["jquery"] }, datatables: { deps: ["jquery"] }, datatablesselectable: { deps: ["datatables"] }, datatablestoggle: { deps: ["datatables"] }, datatablesresize: { deps: ["datatables"] }, datatablestabletools: { deps: ["datatables"] }, toaster: { deps: ["jquery"] }, cookie: { deps: ["jquery"] }, validation: { deps: ["jquery"] }, validationadditional: { deps: ["validation"] }, alerts: { deps: ["jquery"] }, loadmask: { deps: ["jquery"] }, qtip: { deps: ["jquery"] }, dropdown: { deps: ["jquery"] }, json: { deps: ["jquery"] }, extensions: { deps: ["jquery", "datatables"] } } }); require([ 'app', 'extensions', 'backbone', 'jqueryui', 'datatables', 'datatablesselectable', 'datatablestoggle', 'datatablesresize', 'datatablestabletools', 'toaster', 'validation', 'validationadditional', 'alerts', 'loadmask', 'qtip', 'json' ], function( app, extensions, // including these here because used literally // every view in app. seems kinda gross backbone, jqueryui, datatables, datatablesselectable, datatablestoggle, datatablesresize, datatablestabletools, toaster, validation, validationadditional, alerts, loadmask, qtip, json ){ app.initialize(); });

the paths config may little unusual because have base of operations app in root "/" context of webserver (where mutual external javascript libs located). app exists in subcontext (e.g. "/myapp") own local js directory of custom scripting.

thanks input!

since of plugins "plain js" files anyway, why don't concatenate + minify plugins 1 file? phone call "myjqplugins.js" , have 1 entry in paths , 1 entry in shims

or, @ to the lowest degree concat them cohesive groups: validation + validationadditional toaster + qtip + others datatables*** 1 file.

^ 3 paths entries + 3 shims entries.

jquery backbone.js datatables requirejs dependency-management

Comments

Popular posts from this blog

web services - java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer -

Accessing MATLAB's unicode strings from C -

javascript - mongodb won't find my schema method in nested container -