【发布时间】:2012-07-27 16:23:54
【问题描述】:
我正在编写一个应该托管在各种站点上的 Javascript 应用程序。应用程序本身使用 jQuery 和 jQuery UI。我知道jQuery.noConflict(true) 技巧并且目前正在使用它,以免污染全球空间。我的目标是始终将 jQuery 及其任何插件保留在我的应用程序本地,以免与托管站点上的任何内容发生冲突。托管站点应该可以加载自己的 jQuery(可能是不同的版本)并添加一些插件。
现在,我想将应用程序构建为 AMD 模块。我可以要求托管站点使用 AMD 加载器(require.js、curl 等),但我不想要求任何特定的加载器——只要符合 AMD API 的任何东西(是的,我知道它是还没有 100% 准备好)。
有可能吗?我可以以可互操作的方式进行操作,以便托管站点可以使用例如是 requirejs、curl 还是 Dojo AMD 加载程序?
例如,用这个:
define(['jquery'], function($) {
var myLocaljQuery = $.noConflict(true);
... my app module implementation here ...
});
如何指定我的应用程序想要使用的 jQuery 路径?据我了解,我不能做这样的事情:
require.config({
paths: {
'jquery' : 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min'
}
});
define(['require'], function(require) {
require(['jquery'], function($) {
var myLocaljQuery = $.noConflict(true);
... my app module implementation here ...
});
});
因为第一个require 是一个全局对象,并且是requirejs 特有的。
【问题讨论】:
标签: javascript jquery requirejs js-amd curljs