使用require.js构建包含公共和私有模块的库

时间:2013-10-09 16:33:46

标签: requirejs rjs

我正在使用require.js构建的库。它有许多公共(由库用户记录和访问)和私有(仅在库中使用)模块。 这是我想在rjs优化期间实现的目标:

  • 将我的代码压缩到尽可能少的文件中;
  • 所有公共模块必须可以在单个文件中访问;
  • 不应在文件之间复制代码。

假设我有模块A,B,C和D. A和B都是公共的,都依赖于C. C依赖于D,但C和D都不是公共API的一部分。我想让rjs创建以下文件:

  • A.js - 包含A模块
  • B.js - 包含B模块
  • C.js - 包含C和D模块

有一种方法可以在rjs config中实现这个目的:

"modules": [
    {
        "name": "A",
        "exclude": ["C"]
    },
    {
        "name": "B",
        "exclude": ["C"]
    },
    {
        "name": "C"
    }
]

但是,这需要我跟踪模块之间的所有依赖关系,并且随着库大小的增长,配置文件变得容易出错并且难以维护。有没有办法只指定一个没有依赖关系的公共模块列表,并期望上面描述的行为?

1 个答案:

答案 0 :(得分:0)

您可能对Require.JS 2.1.10中的新功能感兴趣:bundle。 http://requirejs.org/docs/api.html#config-bundles