RequireJS笔记

合并与压缩
下载r.js进行合并与压缩,配置文件build.js的demo:
({  
    appDir: './',    // app顶级目录,非必选项,如果指定相对路径则是相对于build文件所在路径。如果指定值,baseUrl则会以此为相对路径

    baseUrl: './assets',     //相对于appDir的扫描需要合并压缩文件的锚点,若该值未指定,模块则相对build文件所在目录。

    dir: '../assets-built',      //指定合并压缩后appDir下的所有文件被复制到此目录,若值未指定,则相对build文件所在目录

    mainConfigFile: '../some/path/to/main.js',   // 配置文件目录

    // 在 RequireJS 2.0.之后,默认输出目录的所有资源会在 build 前被删除
    // 值为 true 时 rebuild 更快,但某些特殊情景下可能会出现无法预料的异常
    //keepBuildDir: true,

    // JS 文件优化方式,目前支持以下几种:
    //   uglify: (默认) 使用 UglifyJS 来压缩代码
    //   closure: 使用 Google's Closure Compiler 的简单优化模式
    //   closure.keepLines: 使用 closure,但保持换行
    //   none: 不压缩代码
    optimize: "uglify",

    modules: [    //一个包含多个对象的数组,每个对象代表被优化的模块
        {  
            name: 'config',         //需要被优化的模块的入口文件,其所有直接或间接依赖的模块将被合并压缩到一个模块中,可在页面中data-main引入此文件  
            include: ['other/a'],    //需要被一起优化的其他模块的入口文件,其所有直接或间接依赖的模块将被合并压缩到同一个模块中
            exclude:['other/b']    //不需要被一起优化到同一个模块的其他模块  
         },{  
                name: 'config2'  
        },{  
                name: 'main'  
        }  
    ],  

    fileExclusionRegExp: /^(r|build)\.js$/,    //排除r.js和build.js被复制到指定文件夹

    //optimizeCss:优化css文件,目前支持以下几种:
    //"standard":标准的压缩方式; 
    //"standard.keepLines":保留换行;   
    //"standard.keepComments":保留注释;   
    //"standard.keepComments.keepLines":保留换行和注释;
    //"none":不压缩;
    optimizeCss: 'standard',    

    removeCombined: true,  //如果为true则所有被合并压缩的文件将不会复制到目标目录   

    paths: {   // 设置模块别名,如果配置数组,顺序映射,当前面模块资源未成功加载时可顺序加载后续资源  
        "jquery": 'plugins/jquery-1.10.2.min',
         //"jquery": 'empty:',
        "bootstrap": 'empty:',       //empty:指定不被合并压缩,单独请求  
        "bootstrap_hover_dropdown": 'empty:',
        "jquery_slimscroll": 'empty:',
        "jquery_blockui": 'empty:',
        "jquery_cookie": 'empty:',
        "jquery_uniform": 'empty:',
        "jquery_validate" : "plugins/jquery-validation/dist/jquery.validate.min"
    },
    shim: {
        "jquery_validate": ["jquery"]
    }
})
//简单版,优化单文件
({
    baseUrl: "../js",
    name: "app1/c1",
    out: "app1-built.js"
})

如果只进行压缩,配置文件build.js的demo:
({
    appDir: "assets",  //相对于build.js的相对路径
    baseUrl: "assets",
    dir: "assets-build" ,
    optimizeCss: 'standard'
})
r.js依赖于nodejs环境,使用方法:进入文件所在目录,运行node r.js -o build.js


你可能感兴趣的:(RequireJS笔记)