使用r.js构建多个包

时间:2015-02-16 13:19:37

标签: build module requirejs bundle r.js

希望是一个低球概念性问题。我无法理解r.js build configsmodules选项。我想用一个r.js构建配置构建具有嵌套依赖关系的多个模块。

说我有以下项目结构:

+---build
+---src
    +---moduleOne
    |   +---moduleOne.js
    |   \---dependecyForModuleOne.js
    +---moduleTwo
    |   +---moduleOne.js
    |   \---dependecyForModuleTwo.js
    |---buildConfig.js
    |---devModuleConfig.js
    \---prodModuleConfig.js

devModuleConfigprodModuleConfig是dev和prod运行时配置,buildConfig.js是r.js构建配置。

现在,我可以使用此配置构建moduleOne没问题:

({
    "baseUrl": "./",

    "name": "moduleOne/moduleOne",
    "out": "../build/moduleOneBundle.js",

    mainConfigFile: 'devModuleConfig.js',
    optimize: 'none'
})

我最终得到了一个构建包,我可以在构建配置中指定不同的路径后运行:

+---build
    \---moduleOneBundle.js

我想构建两个模块,因此请使用moduleOne配置选项指定modules

({
    "baseUrl": "./",
    modules: [
        {
            "name": "moduleOne/moduleOne",
            "out": "../build/moduleOne.js"
        }
    ],

    dir:"../build", //   <-- r.js says I need to add this.  why?

    mainConfigFile: 'devModuleConfig.js',
    optimize: 'none'
})

除了所需的dir选项之外,我在build目录中得到了所有的配置,但是我没有指定它们,而且我没有得到我的捆绑模块,我得到了一个文本包含r.js构建输出的文件。事实上,build最终看起来与src完全相同:

+---build
    +---moduleOne
    |   +---moduleOne.js
    |   \---dependecyForModuleOne.js
    +---moduleTwo
    |   +---moduleOne.js
    |   \---dependecyForModuleTwo.js
    |---build.txt
    |---buildConfig.js
    |---devModuleConfig.js
    \---prodModuleConfig.js

如何使用一个r.js配置配置多个模块进行构建?我已经阅读了几次文档,无法理解它。

您可以在此处查看包含所有内容的项目:https://github.com/sennett/r.js-multiple-modules

1 个答案:

答案 0 :(得分:0)

指定modules时,r.js包含所有文件,然后根据modules中指定的规则优化文件。 removeCombined: truebuild中删除组合到另一个模块中的模块,然后手动删除其他文件,可以手动清除任何不需要的构建工件。