javascript - 在 RequireJS 中连接模块

标签 javascript requirejs grunt-contrib-requirejs

我正在使用 RequireJS 来模块化我的代码。我正在使用的网站将有几个不同的页面类别。对于其中每一个,我都想加载通用 JS 文件,其中包含所有页面类别中存在的所有依赖项,jQuery 是最明显的一个。我已经成功做到了。

对于其余页面,我想要有单独的 JS 文件。每个页面都有自己的模块,但我认为如果我一次下载多个页面模块会更有意义,这样当用户访问其他页面时,他将已经缓存了 JS 文件,而不必下载。

现在我尝试连接这些模块,效果相当好。但是,我不确定如何从文件加载特定模块。到目前为止我正在这样做:

require(['./js/common'], function (common) {
    require(['public']);
});

common 是依赖项文件,public 是我包含所有依赖项的串联文件。它内部每个页面都有模块,但我不知道如何调用特定的模块。有什么想法吗?

最佳答案

看看bundles RequireJS 运行时配置的选项。在你的情况下,它会是这样的:

bundles: {
    public: ['mod1', 'mod2', ...] 
}

我使用了 mod1mod2 因为我没有看到您问题中实际模块的名称,但您想要的是以下名称public 包内的模块以及您想要单独加载的模块。这样,RequireJS 就会知道,当您想要加载此类模块时,它必须从 public 获取它们,而不是单独搜索它们。

然后您应该能够将加载代码更改为:

require(['./js/common'], function (common) {
    require(['mod1']);
});

同样,mod1 用于说明。

关于javascript - 在 RequireJS 中连接模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26358845/

相关文章:

javascript - Node.js 100% CPU - gettimeofday 调用

javascript - requirejs 没有正确加载对象

javascript - RequireJS bundle 在优化器中失败 - "modules share the same URL"

javascript - 在 Durandal 构建中从优化中排除文件

javascript - Bootstrap 4 砌体效果响应

javascript - 如何从缓冲区返回文件流?

javascript - 如何在完全加载之前隐藏网站内容?

requirejs - Require.js 编译器生成不准确的源映射

kendo-ui - Durandal Weyland/Requirejs 优化器与 kendo ui dataviz

asp.net-mvc - requirejs 上的引用包