Requirejs 有没有办法在Require.js中定义全局依赖项?

Requirejs 有没有办法在Require.js中定义全局依赖项?,requirejs,Requirejs,背景故事: 我目前有一个Require.js和jQuery/Backbone.js正在使用这个站点。到目前为止,jQuery和主干网一直在Require之外,让我来做: define([], function() { // NOTE: Using Backbone and $ without an import! new Backbone.View(el: $('#foo'); }); 这非常有效:如果没有这种方法,我的站点中几乎每个模块都必须添加主干/jQuery依赖项 但是

背景故事:

我目前有一个Require.js和jQuery/Backbone.js正在使用这个站点。到目前为止,jQuery和主干网一直在Require之外,让我来做:

define([], function() {
    // NOTE: Using Backbone and $ without an import!
    new Backbone.View(el: $('#foo');
});
这非常有效:如果没有这种方法,我的站点中几乎每个模块都必须添加主干/jQuery依赖项

但是有一天,我需要将一部分代码打包成一个外部库。我为它制作了一个单独的require-config文件,一切看起来都很棒,直到我将所有文件编译(“优化”)到一个库文件中,并意识到主干/jQuery(以及相关插件/库)没有被包括在内

因此,我添加了一组垫片,并获得了主干、jQuery和所有需要的相关库。然而,我仍然有大量的模块希望
$
主干
仅仅存在。这应该没问题,因为主干/jQuery都全局注册了它们的变量,但这不是因为Require的加载顺序

基本上,任何没有依赖项的模块都会被破坏,因为它们在需要加载jQuery/主干垫片之前加载。任何具有依赖关系的模块都不会出现此问题,因为jQuery/Backbone在加载时已经加载

似乎我唯一的选择是向每个模块添加一个显式主干/jQuery,而不依赖它们。不过,我有很多这样的模块,理想情况下,我不想在任何地方导入jQuery/主干

问题

所以,我的问题是:有没有办法告诉我们“在加载其他模块之前加载这些X模块/垫片”?或者,换一种说法,有没有办法告诉我所有的模块都依赖于某些其他模块

我认为,将主干网放在我最初的首要位置需要:

require(['backbone', ...

但这没有帮助;其他无依赖性的模块仍然在加载之前加载。

我看不出有什么原因这不起作用:

require(['backbone', 'jquery'], function () {
    require(['main']);
});

其思想是将应用程序的初始入口点封装在一个加载主干和jQuery的
require
调用中如果仅加载应用程序的模块,因为需要
main
(也就是说,如果没有
require
调用加载
main
所需的任何模块),然后,通过上面的代码,主干和jQuery都保证在
main
使用的任何模块加载之前加载。

我已经给出了答案。我看到你说“我想把主干网放在我最初需求的顶部”,然后你给出了这段代码
require(['Backbone',…
),你说它不起作用。但我不清楚你称之为“我最初需求的顶部”是什么。如果结果是我所建议的,那么请在您的问题中添加详细信息。这非常有意义。我认为我的问题是试图将主干/jQuery与我的“main”中的其他包含相结合。当我明天进来时,我将尝试这种方法;谢谢。