abc-team / ABC

Assets build center
5 stars 0 forks source link

singlePage #9

Open chesihui opened 11 years ago

chesihui commented 11 years ago

singlePage

singlePage是abc推荐的最简洁、轻量的文件目录组织形式; 当前目录打包,暂不考虑版本升级,及时间戳目录方式,试用于改动频繁快速响应的项目开发;

Usage

  • 使用singlePage初始化项目目录结构
$ abc init -t single

生成后的目录及文件

- app                 // root
    ├ common          // 静态引入资源
    ├ utils           // 公用组件
    └ abc.json        // 配置打包信息

打包前的文件目录结构:

- app                
    ├ common          
    ├ utils
    ├ page1
    │   ├ block1               //block1的模块文件
    │   │  ├ mod1.js
    │   │  ├ mod1.css 
    │   │  ├ mod2.js
    │   │  └ mod2.css 
    │   ├ block1.js           //block1入口文件   
    │   └ block1.css                                                      
    │                      
    ├ page2
    │   ... 
    │
    └ abc.json             
$ abc build

最终打包后的文件目录结构:

- app                
    ├ common          
    ├ utils 
    ├ page1
    │   ├ block1
    │   │  ├ mod1.js
    │   │  ├ mod1.css 
    │   │  ├ mod2.js
    │   │  └ mod2.css 
    │   ├ block1.js          //debug后的block1入口文件
    │   ├ block1-min.js     //combo后并压缩的文件
    │   └ block1.css      //csscombo后的文件               
    │                      
    ├ page2
    │   ... 
    └ abc.json            

abc.json默认执行内容如下:进行js combo并压缩,css combo并压缩

    {
        "config" : {
            "min" : {
                "a" : {
                    "src" : "*.js",
                    "exclude" : ["*-min.js","*-combo.js"],
                    "dest" : "{{filename}}-min.js",
                    "codeOutput" : "gbk"
                }
            },
            "combo" : {
                "a" : {
                     "src" : "*.js",
                     "dest" : "{{filename}}.combo.js"
                }
            }
            "del" : {
                "a" : {
                    "src" : "*.combo.js"
                }
            }
            "csscombo" : {
                "a" : {
                     "src" : "*.css",
                     "dest" : "{{filename}}.css"
                }
            }

       },
       "tasks" : ["combo:a","min:a","del:a","csscombo:a"]
    }

页面引用

//包配置
KISSY.config({
     packages: {
       name:"app",
       path:'http://a.tbcdn.cn/apps/',
       charset:"gbk",
       tag:'20130117'
     }
});
//引用文件
KISSY.use( 'app/page1/block1' );

Upgrade