gpt4 book ai didi

javascript - Require Js - 在 "Not fully client side application"中寻求 requirejs 的混合实现

转载 作者:行者123 更新时间:2023-11-29 14:48:04 27 4
gpt4 key购买 nike

这几天我一直在探索 requirejs(用于异步加载模块和依赖项的 JavaScript 模块加载器)。

我所了解的是,您需要将所有 JavaScript 库或插件(如 Jquery 等)加载到 require.config 中,以便将它们用作您创建的任何自定义模块或您使用的任何其他插件的依赖项直接依赖于 jquery 或任何其他库。

我不确定和怀疑的是它是否可以在已经构建的应用程序中使用,我只希望使用 requirejs 和其他应用程序 javascript 定义/使用我的几个依赖于 Jquery 的插件或库 continue在其行形式中使用 jquery。

也就是说:我使用脚本标签而不是通过 require.config 包含 jquery,但希望使用依赖于 Jquery 的 require js 来包含其他插件/JavaScript。

简而言之,我想要在我已经构建的服务器端应用程序中使用 requirejs 的一种混合实现,它不是完全客户端应用程序。

我们将不胜感激代码片段或操作方法。

最佳答案

是的,这是可能的,前提是您要谨慎行事。

加载 RequireJS 加载的代码所依赖的 JavaScript 代码的所有 script 元素都应该出现在任何启动 RequireJS 模块加载的代码之前。这是确保在 RequireJS 开始加载模块时您需要的东西可用的唯一方法。

然后您可以选择使用 RequireJS 加载模块,只需假设使用 script 加载的内容已使其在全局范围内可用,并在不将其添加到您的依赖项的情况下使用它。例如,如果一个模块需要 jQuery 并且它已经加载了一个 script 元素,那么该模块将假定 $ 已经定义:

define(function () {
$("p").append(...);
});

对于已经列出依赖于您碰巧使用 script 元素加载的代码的第 3 方代码,或者如果您希望在您编写的代码中明确依赖,则必须使用“胶水”模块”。 (这是我更喜欢我自己的代码的选项。)上面的相同模块将正式需要 jQuery:

define(["jquery"], function ($) {
$("p").append(...);
});

并且您必须有一个用于jquery 的“胶水模块”。我通常将此类模块放在我的 require.config 调用之前,而不是 将它们放在单独的文件中。它会是这样的:

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

请注意,此处调用 define 的第一个参数是一个字符串(而不是数组),它告诉 RequireJS 该模块名为 jquery。您通常不应该像这样硬编码名称,但对于胶水模块,这很好。胶水模块假设 $ 已定义并且是 jQuery。任何需要 jQuery 的模块都依赖于这个模块。如果在稍后阶段将 jQuery 作为 RequireJS 模块加载,则可以删除胶水模块,并且不需要修改任何依赖于 jQuery 的模块。

关于javascript - Require Js - 在 "Not fully client side application"中寻求 requirejs 的混合实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30069308/

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