我使用 require 编写了一个 jQuery 插件,将其包装在杏仁中,并通过另一个应用程序中的 shim 配置加载它。不幸的是,require 将全局 jQuery 暴露给插件而不是本地的。我的代码:
插件.js
(function() {
// almond code
// other dependencies
require(dependencies, function (dependencies) {
!function($) {
// window.jQuery == $ -> true
$.fn.plugin = function(options) { return this; }
}(jQuery);
});
})();
main.js
require.config({
paths: { 'jquery': 'vendor/jquery-1.9.1.min' },
shim: { 'plugin': ['jquery'] }
});
require(['jquery','plugin'], function ($) {
// window.jQuery == $ -> false
$('#plugin').plugin(options);
// error, object [Object object] has no method "plugin"
);
shim 不应该加载将本地 jQuery 模块暴露给插件全局范围的插件代码吗?