Javascript r、 两个包含almond的.js文件是否可以共享依赖项?

Javascript r、 两个包含almond的.js文件是否可以共享依赖项?,javascript,requirejs,r.js,almond,Javascript,Requirejs,R.js,Almond,是否可以将almond与多页设置一起使用,如下所示: common.js加载在所有页面上,包含almond、bootstrap和jquery main1.js仅在第1页加载,其中包含almond和需要jquery的app/main1.js。 当我运行main1.js的构建时,我排除了bootstrap和jquery,因为它是通用的 在第1页上加载了common.js和main1.js,但我得到一个错误:Uncaught错误:app/main1缺少jquery 有可能用杏仁做这个吗?或者我做错了什

是否可以将almond与多页设置一起使用,如下所示:

common.js加载在所有页面上,包含almond、bootstrap和jquery

main1.js仅在第1页加载,其中包含almond和需要jquery的app/main1.js。 当我运行main1.js的构建时,我排除了bootstrap和jquery,因为它是通用的

在第1页上加载了common.js和main1.js,但我得到一个错误:
Uncaught错误:app/main1缺少jquery

有可能用杏仁做这个吗?或者我做错了什么

更新: 我正在使用django require,它将python对象转换为r.js的命令行条目,而且它将提供的模块重命名为“almond”,并将命名模块添加到include中(这可能是导致我的错误的原因?)。另外请注意,django require不允许包含/排除require_独立_模块,我添加了以下功能:

REQUIRE_STANDALONE_MODULES = {

    "common": {
        "out": "common.js",
        "include": ["bootstrap", "jquery"],
        "build_profile": "module.build.js"
    },
    "main1": {
        "out": "main1.js",
        "exclude": ["bootstrap", "jquery"],
        "build_profile": "module.build.js"
    }
}
Main1.js

require(['app/main1']);
这将转换为如下生成文件条目:

modules = {
    "almond": {
        "out": "common.js",
        "include": ["common", "bootstrap", "jquery"],
        "build_profile": "module.build.js"
    },
    "almond": {
        "out": "main1.js",
        "include:"main1", 
        "exclude": ["bootstrap", "jquery"],
        "build_profile": "module.build.js"
    }
}

这是可能的。你只需要清楚你的包含和排除。在以下设置中,所有模块都存储在
js
子目录中,优化输出输出到
build
。为了简单起见,jQuery存储为
js/jQuery.js
,因此无需调用
require.config

js
中的文件是:
ammond.js
jquery.js
main1.js
main2.js

以下是构建配置:

({
    baseUrl: "js",
    optimize: "none", // So that we can see what is going on in the bundles.
    dir: "build",
    removeCombined: true,
    skipDirOptimize: true,
    modules: [
        {
            name: "common",
            create: true,
            include: ["almond", "jquery"]
        },
        {
            name: "main1",
            exclude: ["jquery"],
            insertRequire: ["main1"]
        },
        {
            name: "main2",
            exclude: ["jquery"],
            insertRequire: ["main2"]
        }
    ]
})
需要公共模块的
create:true
选项,以便优化器创建它。大概,对
require.config
的调用将被放入
js/common.js
中,然后您将删除此选项

此优化的结果加载到第1页,其中包含:

<script type="text/javascript" src="build/common.js"></script>
<script type="text/javascript" src="build/main1.js"></script>

第2页将加载
build/main2.js


加载引导程序需要一个与一般情况相同的RequireJS配置,并且与上面代码中的jQuery完全相同。

请参阅原始问题中的我的更新。我的构建设置与您相同。还要注意,我的common模块实际上以common.js的形式存在,因此我不需要create=true,require调用是在common、main1和main2中进行的,因此不需要插入require@LouisThemain1.js调用
require(['app/main1'])
,这是找不到的模块。但是,此模块的代码确实存在于生成文件中。那么可能是将main1重命名为almond导致了这个问题?又救了我一命!谢谢@Louis@Louis嘿,看来我忘记接受这个极好的答案了。我为延迟道歉。@arctelix很高兴能提供帮助!