问题描述
我写了一个 requirejs 应用,它将被包含在各种环境中,其中一些已经提供了一些 javascript 框架,我想重用这些框架,而不是我带来的提供的 amd 模块。
我说的是 jquery 和 Foundation。我的一些应用程序脚本本身就使用了这些框架,我想做类似以下示例的操作,但我不知道是否可以使用 requirejs 来完成,如果可以,如何...
requirejs.config({
paths: {
"jquery": "window.$","foundation": "window.Foundation","foundation.module": "window.Foundation.Module"
},shim: {
"jquery": {
exports: "window.$"
},"foundation": {
deps: ["jquery"],exports: "window.Foundation"
}
}
});
我能实现这样的目标吗?
解决方法
您正在寻找的是代理模块。由于 Foundation 和 jQuery 已经加载,在我假设的 RequireJS 之前。
很简单,只需要定义一个返回全局变量的模块就可以了,在这里,看看jQuery的例子:
define('jquery',function () {
return window.$;
});
不需要任何配置。您可以删除不需要的路径和垫片。