zoukankan      html  css  js  c++  java
  • RequireJS进阶(三)

    但以上两种方式有几个问题

    1、通过命令手动配置压缩选项显得很呆板
    2、都仅合并为一个文件

    对于最后只生成一个文件的库来说,这种方式并无不妥。比如jQuery,它的工程中小文件有20多个,打包后只有一个jquery-1.x.x.js。对于多数实际应用项目来说,可能打包后需要生成多个js文件。有些是页面打开时就要用到的,有些是用户点击或输入时按需加载的。

    r.js有另外一种方式来合并压缩,即通过一个配置文件(如build.js)。配置文件内部采用前端工程师非常熟悉JSON格式。这样当项目开发目录固定后,配置文件也相应固定。通过配置文件就很好的隔离了开发环境及上线环境。

    这次我们创建的目录中包含所有前端资源,js,css,图片。

    其中有两个页面page1.html,page2.html。这两个页面分别使用page1.js和page2.js。

    page1.js依赖于event和selector,page2.js依赖于event、selector和jQuery。jQuery是非本地的,没有合并前我们直接访问这两个页面,那么单个的js文件会依次下载。

    现在使用r.js来合并压缩,使每个页面除下载require.js外只下载各自合并的大文件page1.js和page2.js。


    build.js如下

    ({
        appDir: "./",
        baseUrl: "js",
        dir: "../r6-built",
        paths: {
            jquery: 'empty:'
        },
        modules: [
            {
                name: "page1"
            },
            {
                name: "page2"
            }
        ]
    })

    进入命令行输入如下命令
    node r.js -o build.js

    会发现在和r6同级的目录生成了r6-built目录

    该目录包含于r6一样的层级结构,这时访问该目录中的page1.html,page2.html。

    这时的page1.js和page2.js就是其它模块文件的合并。另外在r6-built中其它的模块文件也被压缩了。

    在build.js中可以配置很多其它参数,可以在这个示例文件中找到更多配置选项。这里不一一列举。

    总结:

    通过配置文件方式可以实现更加强大,灵活的合并工作。可以生成多个合并文件,包括不同页面的js,css。

    下载

  • 相关阅读:
    Stm32CubeMX5 配置 STM32的串口DMA接受方式 --- 基于 stm32f051k8u6
    Stm32 控制1.44寸液晶显示图片 基于stm32f051k8u6
    makefile自动编译
    Stm32CubeMX5 创建LED控制工程
    ARM 汇编与C之间 的调用
    shell 脚本文件类型.sh ,变量
    bzoj3589 动态树 求链并 容斥
    bzoj2287【POJ Challenge】消失之物 缺一01背包
    bzoj2916: [Poi1997]Monochromatic Triangles 思路
    [NOI2010]超级钢琴 主席树
  • 原文地址:https://www.cnblogs.com/koal/p/5209047.html
Copyright © 2011-2022 走看看