gpt4 book ai didi

javascript - 在 requirejs 中使用全局变量

转载 作者:行者123 更新时间:2023-11-30 12:33:46 25 4
gpt4 key购买 nike

我正在尝试学习 RequireJS,但我对加载全局变量有点困惑。我有一个外部脚本,用于检查 window.Foo 是否已实例化。这意味着我需要在 require(//url/to/external-script) 上述外部脚本之前实例化它

我的问题是我不确定如何在 requireJS 中实例化它

我是否在一个单独的文件中define(),然后在加载外部脚本之前加载该文件?

我是否在 requirejs.config 中创建它

最佳答案

requirejs.config 中没有实例化全局变量。基本上有两种方法。

您可以使用 script 元素并将实例化内联或放在外部脚本中,只要此 script 元素出现在 一个启动你的模块加载的。所以:

<script>
window.Foo = ... whatever;
</script>

另一种方法是使用 RequireJS 模块来执行工作,假设它称为 foo-config:

define(function () {
window.Foo = ... whatever;
});

然后您的模块需要定义 window.Foo 必须在其依赖项中包含上述模块。如果您使用的是本身使用 define 将自身定义为 AMD 模块的第 3 方模块,这可能会出现问题,因为没有机制可以让您添加依赖项这样的模块。您可以使用嵌套的 require:

require(['foo-config'], function () {
require(['third-party']);
});

但这很丑陋,而且容易出错。如果您有多个使用 third-party 的页面,您需要始终记住使用嵌套的 require 来加载它。

另一方面,如果该第 3 方模块不是 AMD 就绪的,因此您使用 shim 配置来加载它,那么您可以将您的模块添加到那里的依赖项列表中。

shim: {
'third-party': ['foo-config'];
}

关于javascript - 在 requirejs 中使用全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26762248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com