- base //{String} 构建项目部署基础路径 + projects //{Array} 项目配置 - name //{String} 项目名称 - alias //{String} 项目别名 - vctrl //{String} 版本控制,未实现 - base //{String} 项目发布的基础路径 - buildroot //{String} 项目在构建工具中的根目录 - banner //{String} 全局banner配置 - workspace //{Object} 工作目录 + env //{Array} 项目环境配置,如开发、正式等 - name //{String} 环境名称 - alias //{String} 环境别名 - root //{String} 部署后的根目录(虚拟主机的DocumentRoot),生成.htaccess文件使用 - path //{String} 环境对应的目录 + deploy //{Array} 资源部署目录 - name //{String} 资源名称 - alias //{String} 资源别名 - type //{String} 资源类型(js/css/img/html) + sed - turn //{String} 开关(on/off) - keypath //{String} 关键路径,如:/js/,/css/,/img/ - include //{Boolean} 替换时是否包含关键路径 - seed //{String} 种子文件 - findpath //{Array} 查找路径配置 - path //{Object} 资源路径 - lib //{String} 库文件路径 - mod //{String} 模块文件路径 - logic //{String} 业务文件路径 - merge //{Object} 合并配置 - [type] //{Object} 类型,对应 path 中的 lib, mod, logc + [filename] //{Array} 合并后的文件名称 - banner //{String} 文件banner - file //{String} 文件名
资源版本控制采用sed命令做全文查找和替换,可以通过工作副本中配置sed参数来打开或关闭。
sed命令格式模板:
sed -i "" 's#name\(\.[0-9a-zA-Z]\{40\}\)\{0,1\}\.ext#name.sha1.ext#g' `grep -E name\(\.[0-9a-zA-Z]\{40\}\)\{0,1\}\.ext -rl findpath`
sed -i "" 's#\"name\(\.[0-9a-zA-Z]\{40\}\)\{0,1\}\"#name.sha1.ext#g' `grep -E \"name\(\.[0-9a-zA-Z]\{40\}\)\{0,1\}\" -rl findpath`
资源版本控制采用Apache的URLWrite实现,通过动态生成.htaccess文件来保障资源更新问题。
动态创建.htaccess文件需要在构建项目的根据下,创建一个.htaccess的文件,格式如下
Options -Indexes +FollowSymLinksRewriteEngine On #{rules}
在构建完成后,工具会去找.htaccess模板文件,如果没有则忽略,否则会对模板文件进行解析, 并且将 #{rules} 替换成正式配置内容,具体可以参考 htaccess.js 文件中的 addRule() 方法 和 write()方法