Je vois des bibliothèques JS utilisant ces deux implémentations différentes. La seule différence est la ligne CommonJS.UMD: l'affectation à module.exports est-elle redondante?
Sont-ils fonctionnellement identiques? L'affectation de la valeur à module.exports n'est-elle pas requise?
/* 1: Assignment to module.exports */
(function(factory) {
if (typeof define === 'function' && define.amd) {
// AMD
define(['jquery'], factory);
} else if (typeof module === 'object' && module.exports) {
// CommonJS
module.exports = factory(require('jquery'));
} else {
// Browser globals
factory(jQuery);
}
}(function($) {
$.fn.jqueryPlugin = function() { return true; };
}));
/* 2: Doesn't assign to module.exports */
(function(factory) {
if (typeof define === 'function' && define.amd) {
// AMD
define(['jquery'], factory);
} else if (typeof module === 'object' && module.exports) {
// CommonJS
factory(require('jquery'));
} else {
// Browser globals
factory(jQuery);
}
}(function($) {
$.fn.jqueryPlugin = function() { return true; };
}));