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

问题描述

我写了一个 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.$;
});

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...