先看一下原始插件的源码是这样的(主要内容省略):

;(function() {
/*jshint eqeqeq:false curly:false latedef:false */
"use strict";
function setup($) {
//插件内容
}

/*global define:true */
if (typeof define === 'function' && define.amd && define.amd.jQuery) {
define(['jQuery'], setup);
} else {
setup(jQuery);
}
})();

模块化,只需要把上面插件内容部分置入既可,模块化后的效果如下:

define(function (require, exports, moudles) {
return function (jQuery) {
(function($){
var $ = require('$');
//插件内容
})(jQuery);
}
});

如此就可以调用了:

define(function(require, exports, module) {
var test;
var $ = require('$');
require('./jQuery.blockUI')($);
$('#button').click(function() {
$.blockUI({ message: '<h1>测试</h1><button class="close">关闭</button>' });
$('.close').click($.unblockUI);
//setTimeout($.unblockUI, 2000);
});
module.exports = test;
});

Related Posts: SeaJS如何模块化jQuery BlockUI插件 :