, , Ajeeb K.P, . ( Ajeeb , JQuery CDN).
, 2 require.config, jQuery, ( DRY, require.config, ). require.config(.. ", ", API RequireJS), IIFE, jQuery.noConflict(true) $. , IIFE, require'd, jQuery, require.config, .
:
var mergeObjs = function mergeObjs(objIn1, objIn2) {
var conglomerateObj = {};
Object.keys(objIn1).forEach(function(item) {
conglomerateObj[item] = objIn1[item];
});
return (function mergeIn(o1, o2) {
Object.keys(o2).forEach(function(key) {
if (typeof o1[key] === 'undefined') {
o1[key] = o2[key];
} else if (typeof o1[key] === 'object' && typeof o2[key] === 'object') {
o1[key] = mergeIn(o1[key], o2[key]);
}
});
return o1;
}(conglomerateObj, objIn2));
};
var reqCommon = {
baseUrl: '../scripts',
paths: {
lodash: '../public/lodash/lodash',
bootstrap: '../public/bootstrap/js/bootstrap.min'
}
};
var req1 = require.config(mergeObjs({
context: 'version1',
paths: { jquery: 'https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min' }
}, reqCommon));
var req2 = require.config(mergeObjs({
context: 'version2',
paths: { jquery: '../public/jquery' }
}, reqCommon));
req1(['lodash', 'jquery'], function(main, ta, _) {
(function($) {
console.log('1st block 1st section jQuery version: ' + $.fn.jquery);
window.jQuery = this.jQuery = $;
req1(['bootstrap'], function(bootstrap) {
console.log("1st block 2nd section: bootstrap loaded!");
console.log("1st block 2nd section: jQuery version: " + $.fn.jquery);
});
}(jQuery.noConflict(true)));
});
req2(['main', 'testaddedjsfile', 'lodash', 'jquery'], function(main, ta, _) {
(function($) {
console.log('2nd block jQuery version: ' + $.fn.jquery);
}(jQuery.noConflict(true)));
});
IIFEs 1- 2- require .
(function mergeObjs) (req1 req2) .
Bootstrap : Bootstrap, , , jQuery window... 2.1.4.
Bootstrap , jQuery : . $( ).
- .