RequireJS有多个页面 - 使用优化器

时间:2012-06-10 22:00:11

标签: asp.net requirejs

我按照此处的说明组织了我的JavaScript:https://stackoverflow.com/a/10816983/83897

我有一个JavaScript密集型的ASP.NET应用程序,它有多个不同的页面(而不是单页面的应用程序)。每个页面都有不同的依赖关系,所以我有一个每页.js文件(page1.js,page2.js等)。每个都有一个require()调用,声明它的依赖:

require(['jquery', 'page1Module'], function($, module){
    // page1 specific stuff here
});

这很好用。 我想知道的是,RequireJS构建流程如何运作?我想我想要一个每页" build" .js文件(例如page1-build.js,page2-build.js等)?我可以利用现有的软件吗?

该过程可能如下所示:

  1. 将给定脚本的所有依赖项编译到临时目录中的一个build.js文件中。
  2. 计算已编译文件的MD5指纹。
  3. 将该指纹与公共/资产中的可比较文件进行比较。
  4. 创建内存中的RequireJS清单,将每个模块映射到已编译的文件。将此清单附加到已编译的文件中。
  5. 以某种方式让生产使用构建文件。
  6. 编辑:经过一番思考后,我认为使用node + r.js的RequireJS优化只会成为更大的资产构建过程的一部分,资产构建依赖于其他一些资产,第三方图书馆。 RequireJS优化将仅用于某些JavaScript依赖项(即每个页面的JavaScript文件,包括找到的依赖项),可能在某些XML配置中指定。

1 个答案:

答案 0 :(得分:2)

您可以通过在构建配置文件中指定模块来创建多个优化文件:

{
   modules: [
     {
         name: "main"
     },
     {
        name: "page1",
        include: ["dep1", "shim2"],
        exclude: ["main"]
     }]
}

每个条目都会生成一个优化的.js文件。

此处有更多信息:How to use RequireJS build profile + r.js in a multi-page project