requireJs构建脚本

时间:2012-09-30 09:54:54

标签: node.js build requirejs r.js

我的代码如下

define("ModuleA", ["InitialDependency"], function (initDep){
   return {};
});


define("ModuleB", ["ModuleA", "OtherDependency"], function (moduleA, otherDep){
   return {};
});

每个模块都在单独的文件“ModuleA.js”,“Moduleb.js”,“InitialDependency.js”和“OtherDependency.js”中定义。

这些模块在我的应用程序中按顺序加载。 ModuleB始终在ModuleA之后加载。这意味着在优化阶段我不希望ModuleA的脚本组合在ModuleB的构建脚本中。我想要以下

ModuleA.built.js包括

  • InitialDependency
  • ModuleA

ModuleB.built.js包括

  • OtherDependency
  • ModuleB

我不希望它们都在同一个文件中,但是可能永远不会加载ModuleB。

我可以为这两个模块做一个构建脚本,但这很费时,因为我的项目中有很多模块,并希望一个构建脚本能够同时构建它们。

创建用于构建这两个模块的构建脚本(以及遵循相同依赖模式的更多模块),我需要了解什么?

1 个答案:

答案 0 :(得分:1)

要实现这一点,您必须使用modules配置选项。

看起来像这样:

{
    modules: [
        {
            name: "ModuleA",
            include: [],
            exclude: []
        },
        {
            name: "ModuleB",
            exclude: [
                "moduleA"
            ]
        }
    ]
}

詹姆斯在这里设置了类似的示例:https://github.com/requirejs/example-multipage

当然,通过单独构建这些模块,您可能最终需要更新路径。如果是这样,那么最好的方法是创建一个包含require.config调用的文件,其中包含针对您构建的应用程序的特殊设置,并包括此配置而不是您通常的配置。但是如果你以一种很好的分离方式设置依赖关系,那么你可能会没事的。通过“良好分离”的方式,我的意思是如果moduleA是基本脚本,那么它不应该包含moduleB的依赖项 - 但我想这是常识!

关于填充模块的注意事项:由于shimmed配置仅在加载文件和r.js订购插件时工作,请确保在没有依赖的情况下不包含填充模块,如果你是不是100%肯定这些将在之前加载。更多信息:https://github.com/requirejs/example-multipage-shim

希望这有帮助!