I building a project with requireJs my file structure is the following:
js/
lib/
noty/
layouts/
bottom.js
top.js
...
themes/
default.js
noty.jquery.js
jquery.js
jquery-ui.js
user/
user.js
app.js
And my configuration :
requirejs.config({
baseUrl: 'js/lib',
urlArgs: 'bust=' + (new Date()).getTime(), //only for dev : no-cache
paths: {
user: '../user'
},
shim: {
'jquery-ui': ['jquery'],
'jquery-tmpl': ['jquery'],
'gridy': ['jquery']
}
});
requirejs(['jquery', 'jquery-ui'], function($){
....
});
My concern is about to integrate noty which is a notification plugin that I may use in any modules. This plugin requires to load :
js/lib/noty/noty.jquery.js
js/lib/noty/layout/top.js
js/lib/noty/themes/bottom.js
I’m not sure what is the way to do that?
-
Concatenate the files ?
-
Load each file as a dependency? :
requirejs([‘jquery’, ‘jquery-ui’, ‘noty/noty.jquery.js’, ‘noty/layout/top.js’, etc. ]
-
Creates some kind of plugin/module for requireJs?
Thanks
Finally I managed to implement the 3rd solution: I’ve created a web module that wrap the library in a file named notiy.js :
I’ve declared the dependencies in the shim config (to fix the dependency order) in my app.js :
Ans it works like a charm!