requirejs - 将全局变量定义为 amd 模块

requirejs - define global variable as amd module

我写了一个 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 之前。

非常简单,只需定义一个模块,它将 return 一个全局变量,仅此而已,在这里,看一下 jQuery 示例:

define('jquery', function () {
  return window.$;
});

不需要配置。您可以删除不需要的路径和垫片。