8000 GitHub - zhushuanglong/bakari-builder: bakari builder
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

zhushuanglong/bakari-builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bakari-builder

##About

bakari-builder是为bakari框架开发的自动化构建工具,类似yeoman

功能:

  • 库管理,基于bower
  • 业务管理
  • 代码构建,基于gulp

##Install

通过npm安装bakari-builder。

npm install -g bakari-builder

##Usage

执行命令,初始化一个项目:

# 初始化一个项目
$ bakari init

# 为项目添加一个库
$ bakari addlib jquery

# 添加一个指定版本的库
$ bakari addlib jquery -v 1.10.0

# 查看当前项目中包含的库
$ bakari liblist

# 添加一个业务
$ bakari addbiz commit/add

Flags

  • -h or -help 查看帮助
  • -V or --version 查看bakari-builder版本
  • -v or --use-version 为当前命令指定一个版本
  • -t or --timing 统计当前命令执行的时间
  • -c or --complete-build 需要进行完整的构建,处在开发模式时(bakari dev),bakari默认不会生成生产环境文件及版本信息。启用这个选项后,bakari在任何情况下都将进行完整的代码构建(包含生产环境文件及版本信息)。

##Commands ###Project

init : 初始化一个项目。

clean : 清理一个项目,这个指令会根据项目配置文件,清除多余的代码,同时补全缺失的代码。

###Lib

addlib <lib> : 添加一个库到项目中。

rmlib <lib> : 从项目中移除一个库。移除库时bakari会检查是否有业务依赖这个库,若有库无法被移除并会提示。

liblist : 查看项目中包含的库。

cleanlib : 清理项目中的库,根据项目配置文件,清除多余的库,同时补全缺失的库。

###Biz

addbiz <path> : 添加一个业务到项目中,通过业务的路径bakari将自动生成pageId及继承关系。

rmbiz <pageid> : 根据page id移除一个业务,移除前需要先移除所有子业务。

bizlist : 查看所有的业务。

bizinfo <pageid> : 查看某个业务详情,包含:

  • pageId : 页面id
  • path : 源文件路径
  • extendPage : 继承页面的id
  • libs : 依赖的库及版本
  • child : 所有的子页面
  • parent : 所有的祖先页面

cleanbiz : 清理项目中的业务,根据项目业务配置,清除多余的业务js文件,同时补全缺失的js文件。

setbiz <pageid> : 设置一个业务配置,修改业务的page idextend page id,builder将自动修改文件名及文件中的继承关系,并会重新构建开发环境、生产环境代码及版本信息。

###build

build <pageid> : 构建某个pageid的文件,会生成一份开发版本和生产版本。若pageid为空则会build所有文件,业务代码将会进行jshint检测,

dev : 开发模式,将监控所有源文件,并自动build。

upversion <pageid> : 更新版本信息,若page id为空,则会为所有文件更新版本信息。版本信息包含:

  • md5 : 业务文件的md5字符串
  • date : 最后更新的时间

通过对md5和date的组合生成唯一的文件id:

// admin-[md5前5位][date后3位]
admin-oa91h371.js

版本信息中的md5由生产环境中对应page id文件的内容生成,例如admin.js的md5由<项目根路径>/script/pro/admin.js的内容生成。

##Working with server ###Page id rule

page id与服务端对应页面的相对位置有关,比如:

add.php在服务端的位置是blog/commit/add.php,对应的page idblogCommitAdd

###Get file

经过bakari构建的最终文件分为开发文件和生产文件,分别用于不同的环境。

开发文件只将代码进行合并,而生产文件会对代码进行压缩。

两份文件分别位于script/dev/script/pro,你可以对这两个目录进行配置(TODO)。

文件的名字与page id相对应,如page idblogCommitAdd,对应的文件为script/dev/blogCommitAdd.jsscript/pro/blogCommitAdd.js

##More ###Biz js file template

你可以为js业务文件设置模板,将模板写入项目根目录下的.jsbiztpl文件中,使用bakari addbiz <pageid>命令添加的业务文件,都会采用此模板。

你还可以再模板中设置一些变量:

  • pageId : 当前页面的page id
  • extendPage : 继承父页面的page id

在模板渲染时,这些变量将自动被替换:

// 简单的继承模板
B.{{pageId}} = B.{{extendPage}}.extend();

当使用bakari addbiz commitAdd命令后,模板会被渲染:

B.commitAdd = B.commit.extend();

bakari将帮你管理模板中的变量,若使用bakari setbiz commitAdd命令修改page id,bakari将自动帮你修正文件,若使用bakari setbiz commitAdd命令将page id修改成commitModify,文件commitAdd.js将变成:

B.commitModify = B.commit.extend();

###Use new library

当你也在业务中使用新的库时,请先使用bakari addlib命令将库添加至项目中,然后使用bakari setbizbakari addbiz时,即可选择新增的库。

###JSHint config

将jshint的配置写入项目根目录下的.jshintrc文件中,bakari将会读取并应用,更多配置查看JSHint doc

###Late load library

bakari加载第三方库的时候将遵从尽可能晚加载的原则。

现在有两个文件commit.jscommitAdd.js,分别依赖以下库:

  • commit.js 依赖:jquery,md5,json3
  • commitAdd.js 依赖:json3,md5

bakari的加载顺序为:

  1. jquery
  2. json3
  3. md5

###Livereload

bakari通过livereload支持浏览器自动刷新。

当你处在开发环境时(bakari dev),当源文件发生变化,bakari在代码构建完成后将自动刷新浏览器。

安装livereload:

安装完成后,在需要自动刷新的页面上开启插件即可。

更多的客户端及帮助,请查看官方网站

About

bakari builder

Resources

License

Stars

Watchers

Forks

Packages

No packages published
0