zoukankan      html  css  js  c++  java
  • RequireJS模块化后JS压缩合并

    使用RequireJS模块化后代码被拆分成多个JS文件了,在部署生产环境需要压缩合并,RequireJS提供了一个打包压缩工具r.js来对模块进行合并压缩。r.js非常强大,不但可以压缩js,css,甚至可以对整个项目进行打包。

    r.js的压缩工具使用UglifyJSClosure Compiler。默认使用UglifyJS(jQuery也是使用它压缩)。此外r.js需要node.js环境,当然它也可以运行在Java环境中如Rhino。JAVA环境使用Ant构建可以参考另外一篇RequireJS optimizer Ant task有介绍。node环境参考RequireJS模块化与GruntJS构建

    本篇介绍require.js官方文档中介绍的方法。

    build.xml

    {
        appDir: '../www',
        baseUrl: 'js/lib',
        paths: {
            app: '../app'
        },
        dir: '../www-built',
        modules: [
            //First set up the common build layer.
            {
                //module names are relative to baseUrl
                name: '../common',
                //List common dependencies here. Only need to list
                //top level dependencies, "include" will find
                //nested dependencies.
                include: ['jquery',
                          'app/lib',
                          'app/controller/Base',
                          'app/model/Base'
                ]
            },
     
            //Now set up a build layer for each page, but exclude
            //the common one. "exclude" will exclude nested
            //the nested, built dependencies from "common". Any
            //"exclude" that includes built modules should be
            //listed before the build layer that wants to exclude it.
            //"include" the appropriate "app/main*" module since by default
            //it will not get added to the build since it is loaded by a nested
            //require in the page*.js files.
            {
                //module names are relative to baseUrl/paths config
                name: '../page1',
                include: ['app/main1'],
                exclude: ['../common']
            },
     
            {
                //module names are relative to baseUrl
                name: '../page2',
                include: ['app/main2'],
                exclude: ['../common']
            }
     
        ]
    }

    在node环境下执行 node r.js -o build.js 就可以压缩合并模块。

    项目参考https://github.com/requirejs/example-multipage/blob/master/tools/build.js

  • 相关阅读:
    安卓系统隐藏滚动条
    jquery 失去焦点时输入框为空时自动填写默认内容
    移动端左右滑动代码
    [转]C#使用FFmpeg 将视频格式转换成MP4示例
    [转]Windows 使用ffmpeg将MP4视频转换为m3u8格式
    [转]搭建flutter开发环境
    [转]ios webview下纯JS实现长按
    [转]SQLServer查询数据库各种历史记录
    [转]Java多线程学习(总结很详细!!!)
    [转]安卓加固之so文件加固
  • 原文地址:https://www.cnblogs.com/wyaocn/p/5804233.html
Copyright © 2011-2022 走看看